Venues map application and system providing a venue directory

ABSTRACT

In some implementations, a computing device can provide a map application providing a representation of a physical structure of venues (e.g., shopping centers, airports) identified by the application. In addition, the application can provide a unique venue directory, providing an easy and visual mechanism to search for categories of points of interest (e.g., clothes, food, restrooms) or specific items within the venue. Search results can be presented on a map of a floor within the venue as well as a listing providing all search results located within the venue.

CLAIM OF BENEFIT TO PRIOR APPLICATION

This application claims the benefit of U.S. Provisional Application No.62/514,547, filed Jun. 2, 2017, which is hereby incorporated byreference in its entirety.

TECHNICAL FIELD

The disclosure generally relates to providing map related featuresconcerning venues in a map application.

BACKGROUND

Mobile devices, such as smart phones, tablet computers, smart watches,and other computing devices, often include applications that provideinterfaces that allow users to utilize services from network serviceproviders. An example of such applications and/or services is map and/ornavigation related applications and/or services. For example, while auser is using a map application on a mobile device, the map applicationcan use a network connection (e.g., Internet connection) to obtain mapdata (e.g., map images, points of interest, etc.) for the mobiledevice's current location from a map service over the networkconnection. The map application can then provide various map relatedservices to the user using the map data received from the map service.

These applications allow a user to view a map of an area in theproximity of the user. The map may identify venues such as stores,malls, office buildings and/or airports, to name a few. The user mayselect a venue and retrieve driving directions thereto. Typical mapapplications also allow a user to search for a place or address andobtain driving directions to one or more search results. Theseapplication, however, do not provide an inside view of a venue or thetype of and/or layout of points of interest within the venue. An insideview of the venue could aid the user in determining if the venue isreally where the user wants to go or if another venue is available tomeet the user's needs. Thus, there is a need and desire for a mapapplication that provides an inside view of a venue located and/oridentified by the map application.

Moreover, there is a need and desire for a map application that presentsthe inside view of venue in a manner that is easy for the user to searchfor and identify and navigate to points of interest within the venue.The inside view of the map application should also be accessible byother applications and programs on the user's device to enhance theuser's experience with those applications and programs.

SUMMARY

In some implementations, a computing device can provide a mapapplication providing a representation of a physical structure of venues(e.g., shopping centers, office buildings, airports). In addition, theapplication can provide an inside view that includes the physical layoutand geometry of the venue's structure as well as the location, structureand layout of points of interest (e.g., stores, restaurants, offices,security check points, restrooms) within the venue. The views becomemore detailed as the user zooms into the venue to reveal points ofinterest and to give the user a feel for traversing the venue.

In some implementations, the map application can provide a unique venuedirectory, providing an easy and visual mechanism to search forcategories of points of interest (e.g., clothes, food, restrooms) orspecific items within the venue. Search results can be presented on amap of a floor within the venue as well as a listing providing allsearch results located within the venue.

In some implementations, the inside view of the map application isaccessible by other applications and programs on the user's device.Thus, whether intended or not, search results that are identified by themap application as having an inside view of the venue are also presentedon a graphical user interface along with typical search results from theother applications.

In some implementations, the map application provides a route and/orturn-by-turn navigation instructions to a destination within a venuecomprising one or more floors when desired by the user. The mapapplication can provide an indoor overview navigation mode whereby theroute is shown on the one or more floors, including routing throughfloor connecting devices (e.g., elevators, escalators, stairs). Thepresentation of the route and venue structures are adjusted to ensurethat the indoor navigation route is not hidden from view while the useris traversing the route.

In some implementations, the map application can provide a contextdriven presentation in an indoor turn-by-turn navigation mode. The mapapplication can present a graphical view of a route and maneuvers asseen from a point of view of a virtual camera. The map application candetermine changes in the navigation context of the user's position,upcoming maneuvers and/or venue structure and dynamically modifies theway the virtual camera captures and presents portions of the indoorscene to produce different navigation scenes in the turn-by-turnnavigation presentation for the venue.

Particular implementations provide at least the following advantages.The structural layout and location of points of interest within a venuemay be inspected using an indoor map even before a user enters thevenue. Thus, providing the user with a mechanism for searching for,identifying and navigating to points of interest whether the user isinside the venue or miles away. Particular implementation of the mapapplication's venue directory provides a drastic improvement overtraditional directories (such as the ones currently found in malls andairports) as the directory is organized by categories and categoryselectors that are color coded and described textually in the samemanner that the points of interest are represented and identified on avenue map.

Particular implementations of the map application enhance the searchingand browsing of external applications and programs by providing theseexternal applications access to the inside views of venues from the mapapplication.

Details of one or more implementations are set forth in the accompanyingdrawings and the description below. Other features, aspects, andpotential advantages will be apparent from the description and drawings,and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of an example system for providing venues mapinformation, searching and routing.

FIG. 2 is an example graphical user interface comprising a mapillustrating a first type of venue that can be presented to a display ofa user device.

FIG. 3 is an example graphical user interface containing a firstzoomed-in view of a map illustrated in FIG. 2.

FIG. 4 is an example graphical user interface containing a secondzoomed-in view of a map illustrated in FIG. 2.

FIG. 5 is an example graphical user interface containing a first indoormap of a first type of venue.

FIG. 6 is an example graphical user interface containing a zoomed-in 3Dview of the indoor map illustrated in FIG. 5.

FIG. 7 is an example graphical user interface containing a selectedrepresentation of selected point of interest.

FIG. 8 is an example graphical user interface comprising a mapillustrating a second type of venue that can be presented to a displayof a user device.

FIG. 9 is an example graphical user interface containing a firstzoomed-in view of the map illustrated in FIG. 8.

FIG. 10 is an example graphical user interface containing a first indoormap of a second type of venue.

FIG. 11 is an example graphical user interface containing a zoomed-inview of a point of interest of the second type of venue.

FIG. 12 is an example graphical user interface containing an indoor mapof a selected point of interest.

FIG. 13 is an example graphical user interface containing an indoor mapof the first type of venue.

FIG. 14 is an example graphical user interface containing an indoor mapalong with a venue directory.

FIG. 15 is an example graphical user interface after the selection ofpoint of interest category selector from the venue directory.

FIG. 16 is an example graphical user interface with an extendedplacecard of the placecard illustrated in FIG. 15.

FIG. 17 is an example graphical user interface after the selection ofanother point of interest category selector from the venue directory.

FIG. 18 is an example graphical user interface after the selection ofanother point of interest category selector from the venue directory.

FIG. 19 is an example graphical user interface after the selection ofanother point of interest category selector from the venue directory.

FIG. 20 is an example graphical user interface providing richinformation concerning a selected point of interest.

FIG. 21 is an example graphical user interface that includes a floorswitcher identifying a current floor.

FIG. 22 is an example graphical user interface that includes the floorswitcher identifying a new floor.

FIG. 22A is an example graphical user interface that includes the floorswitcher identifying a new floor and an example of a more prominent userlocation identifier.

FIG. 22B is an example graphical user interface that includes the floorswitcher identifying a new floor and another example of a more prominentuser location identifier.

FIG. 23 is an example graphical user interface containing an indoor mapof along with a venue directory for the second type of venue.

FIG. 24 is an example graphical user interface after the selection of apoint of interest category selector from the venue directory.

FIG. 25 is an example graphical user interface with an extendedplacecard of the placecard illustrated in FIG. 24.

FIG. 26 is an example graphical user interface containing an indoor mapof a point of interest along with a venue directory for the point ofinterest.

FIG. 27 is an example graphical user interface with an extendedplacecard of the placecard illustrated in FIG. 26.

FIG. 28 is an example graphical user interface after the selection of afirst point of interest selector from the point of interest's directory.

FIG. 29 is an example graphical user interface providing richinformation for a selected point of interest.

FIG. 30 is an example graphical user interface after the selection of asecond point of interest selector from the point of interest'sdirectory.

FIG. 31 is an example graphical user interface to initiate a searchusing the map application of FIG. 1.

FIG. 32 is an example graphical user interface to initiate a manualsearch for a venue using the map application of FIG. 1.

FIG. 33 is an example graphical user interface to initiate a manualsearch using a name of a specific venue in the map application of FIG.1.

FIG. 34 is an example graphical user interface to initiate a manualsearch for a category of venues using the map application of FIG. 1.

FIG. 35 is an example graphical user interface which provides access tofeatures of the map application of FIG. 1 through a search using a webbrowser.

FIG. 36 is an example graphical user interface which provides access tofeatures of the map application of FIG. 1 through a search applicationor program.

FIG. 37 is an example graphical user interface which provides access tofeatures of the map application of FIG. 1 through voice commands throughan intelligent personal assistant.

FIG. 38 is an example graphical user interface comprising a venueproximity alert that can be presented to a display of a user device whenthe user device is in a locked mode.

FIG. 39 is an example graphical user interface comprising a widget thatcan be presented to a display of a user device after a user swiped orotherwise interacted with the graphical user interface of FIG. 38.

FIG. 40 illustrates an example graphical user interface comprising avenue proximity alert and event alert that can be presented to a displayof a user device when the user device is in a locked mode.

FIG. 41 is an example graphical user interface comprising a widget thatcan be presented to a display of a user device after a user swiped orotherwise interacted with the venue proximity alert of FIG. 40.

FIG. 42 is an example graphical user interface comprising a widget thatcan be presented to a display of a user device after a user swiped orotherwise interacted with the event alert of FIG. 40

FIG. 43 is an example graphical user interface presenting an indoor mapcomprising points of interest in one of four display states.

FIG. 44a is a portion of an example graphical user interface presentingexample points of interest having a small footprint.

FIG. 44b is a portion of an example graphical user interface presentingan example point of interest having a large footprint.

FIG. 44c is a portion of an example graphical user interface presentingan example point of interest having a large footprint in which only aportion is presented in the current view.

FIG. 45a is a portion of an example graphical user interface presentingexample points of interest having a small footprint.

FIG. 45b is a portion of an example graphical user interface presentingan example point of interest having a large footprint.

FIG. 45c is a portion of an example graphical user interface presentingan example point of interest having a large footprint in which only aportion is presented in the current view.

FIG. 46 is a portion of an example graphical user interface presentingdifferent labeling for example points of interest.

FIG. 47 is an example graphical user interface illustrating thealignment of example points of interest on an indoor map.

FIG. 48 is an example of components within the map application forproviding an indoor navigation presentation for a venue.

FIG. 49 illustrates an example of the four coordinate systems used bythe map application disclosed herein.

FIG. 50 is an example graphical user interface illustrating an overviewof an indoor route on an indoor map of a venue.

FIG. 51 is an example graphical user interface illustrating a slightlyzoomed-in and rotated overview of the indoor route illustrated in FIG.50.

FIG. 52 is an example graphical user interface illustrating a slightlyzoomed-out overview of the indoor route illustrated in FIG. 51.

FIG. 53 is an example graphical user interface illustrating a slightlyzoomed-in and rotated overview of the indoor route illustrated in FIG.52.

FIG. 54 is an example graphical user interface illustrating an overviewof the indoor route having a different pitch than the overview of FIG.53.

FIG. 55 is an example graphical user interface illustrating overview ofa different indoor route for a venue.

FIG. 56 is an example graphical user interface presenting a contextdriven indoor turn-by-turn navigation presentation for a route to anintended destination within a venue.

FIG. 57 is an example graphical user interface presenting a rotatedgraphical view of the indoor route of FIG. 56.

FIG. 58 is an example graphical user interface presenting anotherrotated graphical view of the indoor route.

FIG. 59 is an example graphical user interface presenting anotherrotated graphical view of the indoor route when the user has reachedintended destination.

FIG. 60 illustrates an example graphical user interface that contains amanual search field for initiating a limited venue search in accordancewith the disclosed principles.

FIG. 61 illustrates an example graphical user interface with a search inprogress.

FIG. 62 illustrates an example graphical user interface with a search inprogress.

FIG. 63 illustrates an example graphical user interface presented whenthere are no search results within the venue.

FIG. 64 is a flow diagram of an example process for presenting an indoormap for a venue in accordance with the disclosed principles.

FIG. 64A is a flow diagram of an example process 6050 for determiningand presenting a floor with an initial set of points of interest inaccordance with the disclosed principles.

FIG. 65 is a flow diagram of an example process for presenting a venuedirecting and providing searching for points of interest within a venuein accordance with the disclosed principles.

FIG. 66 is a flow diagram of an example process for providing venuesearching in accordance with the disclosed principles.

FIG. 67 is a flow diagram of an example process for providing indoorrouting and context driven navigational routing within a venue inaccordance with the disclosed principles.

FIG. 68 is a block diagram of an example computing device that canimplement the features and processes of FIGS. 1-67.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION Overview

FIG. 1 is a block diagram of an example system 100 for providing venuesmap information, searching and routing according to the disclosedprinciples. In some implementations, system 100 can include serverdevice 102. For example, server device 102 can represent a computingdevice or multiple computing devices associated with a map (e.g.,navigation) services provider. Server device 102 can correspond towell-known server hardware architectures and include processors forperforming operations for providing map and/or navigation services.

In some implementations, server device 102 can include map service 104.For example, map service 104 can be a software server that providesbackend processing for a map service provider. Map service 104 can, forexample, obtain map data (e.g., map images, points of interest,navigation and/or routing information, etc.) from map data database 106and send the map data to various client devices (e.g., user device 130)so that the client devices present maps and/or navigation information tothe users of the client devices. For example, map service 104 can sendmap data to a client device while the client device is connected toserver device 102 through network 120 (e.g., the Internet). The clientdevice can present the map data to the user using a map or navigationapplication on the client device.

In some implementations, user device 130 can be a computing device, suchas a laptop computer, smart phone, tablet computer, and the like. Userdevice 130 can be a wearable device, such as a smart watch, smartglasses, etc. User device 130 can be a media device, such as a streamingmedia device, media player, automobile entertainment system, etc. Userdevice 130 can be a client device that connects to network 120 to obtainmap data, as described herein.

In some implementations, user device 130 can include map application132. For example, map application 132 can provide features that allowthe user to search for and/or specify a destination. In oneimplementation, the map application 132 allows the user to search forparticular venues and/or items within particular venues and/or venues ina proximity to user device 130. Map application 132 can provide featuresthat allow the user to view representations of maps corresponding to theuser's current location, maps corresponding to a location associatedwith search results or other points of interest, and/or mapscorresponding to a destination location or geographical area selected bythe user. Map application 132 can receive user input requesting a routeto the destination and map application 132 can present a route from astart location (e.g., the current location of user device 130, auser-specified location, etc.) to the specified destination.

Moreover, map application 132 can provide a representation of a physicalstructure of venues (e.g., shopping centers, airports). In addition, andas discussed below, application 132 can provide a view of the interiorof the venue that includes the physical layout and geometry of thevenue's structure as well as the location, structure and layout ofpoints of interest (e.g., stores, restaurants, security check points,restrooms) within the venue. The views can become more detailed as theuser zooms into the venue to reveal points of interest. In someimplementations, the view of the interior of the venue can includeoutdoor walking spaces or courtyards that are included in some types ofvenues.

In some implementations, map application 132 can provide a unique venuedirectory providing a visual mechanism to search for categories ofpoints of interest (e.g., clothes, food, restrooms) or specific itemswithin the venue. Search results can be presented on a map of a floorwithin the venue as well as a listing providing all search resultslocated within the venue. In some implementations, the inside viewprovided by map application 132 can be accessible by other applicationsand programs on the user's device such as e.g., user device 130.

FIG. 2 illustrates an example graphical user interface 200 of mapapplication 132 that can be presented on a display of user device 130.For example, each of the graphical user interfaces (GUIs) describedherein can be presented on the display of user device 130 by mapapplication 132. In some implementations, graphical user interface (GUI)200 is a two-dimensional view and presents map 202. For example, map 202can initially represent the user's current location using a locationpuck 201 as well as one or more venues 204 in the vicinity of the user'slocation. Map application 132 can, for example, send the currentlocation of user device 132 to map service 104 on map server 102. Mapservice 104 can return data for presenting map 202. In the illustratedimplementation, venue 204 is identified by graphic 205 dictating thetype of venue 204 (i.e., an icon used by the application to identify avenue), which in this case is a shopping center or mall. In addition,venue 204 is identified by region 206 representing its external physicalstructure and location and layout on the map 202 and textual label 208describing venue 204 as “Westfield San Francisco Centre,” a shoppingcenter or mall, by way of example only.

In some implementations, GUI 200 can include a tray 220 having graphicalelement 222 for searching for a place or address. For example, graphicalelement 222 can be a text input control. When the user selects graphicalelement 222, user device 130 can present a virtual keyboard that theuser can use to enter textual search parameters. After receiving thesearch parameters, map application 132 can send the search parameters tomap service 104 on map server 102. Map service 104 can return locationsmatching the search parameters as search results. Map application 132can present the search results on the display of user device 130(discussed below in more detail). When presenting search results, map202 can be updated to represent an area around the location of thesearch results.

In some implementations, GUI 200 can also include first control 212allowing the user to change map settings for map application 132. TheGUI 200 can also include second control 214 allowing the user to changethe orientation of map 202, if desired.

General GUI Behavior—Shopping Centers

FIG. 3 illustrates an example graphical user interface 300 containing afirst zoomed-in view of map 202 after the user performed a zoom-inoperation on map 202. In some implementations, when user device 130 hasa touch-sensitive surface, the zoom-in operation can be a gesture suchas e.g., a multi-finger gesture often referred to as “de-pinching”whereby two fingers are placed in contact on the device 130 surface andthen dragged and spread apart from each other as they continue to touchthe surface. The pre-sent disclosure should not be limited to anyparticular technique for zooming-in or out on map 202.

The GUI 300 can show a 2D map 202 similar to the one illustrated in FIG.2 and as the user zooms-in on map 202, the venue 204 becomes a 3Dstructure as discussed below in more detail. For example, GUI 300presents a first zoomed-in representation of venue 204 previously shownin GUI 200. In this representation, venue 204 is now identified by 3Dstructure 306 representing venue 204's physical structure and locationon the zoomed-in two-dimensional map 202. For example, GUI 300 canpresent a perspective view of 3D structure 306 that includes a roof 310and walls 311. As is discussed below, the 3D structure 306 may beintroduced via an animation or change in viewing angle. Zooming-infurther, as is discussed below, causes the structure 306 to fade awayand be replaced by internal details/structure (i.e., interior andexterior walls will be presented and sheared in the appropriatedirection away from a virtual camera perspective giving them the 3Dappearance without the need to change the pitch of the camera). Todistinguish or identify an interactive venue (e.g., a venue that theuser can look inside) from other non-interactive venues, points ofinterest, or objects presented on map 202, as the user zooms in on map202, the 3D structure 306 corresponding to venue 204 can be animated sothat it appears to pop up off or rise from the surface of map 202 whileother non-interactive venue objects remain flat (e.g., 2-dimensional).Venue 204 is also identified by its corresponding textual label 308 asdescribed above. In some implementations, a zoom level threshold can beused to trigger the animation. In addition, the threshold could changebased on the size of the structure. Moreover, venue 204 now containsselector 312 indicating that the user may look inside venue 204 (e.g.,via an indoor map for venue 204) by selecting selector 132. In someimplementations, the user may also look inside venue 204 by continuingto zoom-in on venue 204. In some implementations, as discussed in moredetail below, looking inside a venue will cause an indoor map to bepresented on the display of user device 130. The indoor may will presentthe structural geometry of the inside floor plan for venue 204 as wellas the identification of points of interest (e.g., stores, securitycheck points, restrooms, etc.) within venue 204.

Details of 3D structure 306, label 308 and selector 312 are contained inthe map data provided from map server 102 over network 120 to userdevice 130 and processed by map application 132. The map data can besent when the user performs the zoom-in operation or it can be pre-sentto user device 130 and stored on device 130 while a prior GUI (e.g., GUI200) is presented on the display. The present disclosure should not belimited to any particular technique or timing for sending the map datato user device 130.

FIG. 4 illustrates an example graphical user interface 400 containing asecond zoomed-in view of map 202 after the user performed anotherzoom-in operation on map 202 or continues to zoom-in past the zoom levelshown in FIG. 3. GUI 400 also presents a second zoomed-in representationof venue 204. Venue 204 is now represented by a cut-away 3D structure406 having walls 411, but whose virtual roof has been removed to reveala partial inside view of the venue 204 comprising walkways 412 andpoints of interest 410 (e.g., stores, restaurants, restrooms) arrangedaccording to the floor plan of venue 204. Details of 3D structure 406,walkways 412 and points of interest 414 are contained in the map dataprovided from map server 102 over network 120 to user device 130 andprocessed by map application 132. As with each update of map datadescribed herein, map data can be sent when the user performs thezoom-in operation or it can be pre-sent to user device 130 and stored ondevice 130 while a prior GUI (e.g., GUI 300) is presented on thedisplay.

In some implementations, 3D structure 406 and points of interest 414 areintroduced by an animation. For example, 3D structure 406 and points ofinterest 414 can be introduced as rising from the ground/floor, droppingfrom the ceilings, passing through a virtual roof if one is presented onthe prior GUI. If the user continues to zoom-in, 3D structure 406 andpoints of interest 414 can continue to be animated or highlighted,establishing their presence in GUI 400. Animation could also beintroduced as a user zooms-out. For example, 3D structure 406 and pointsof interest 414 could appear to be shrinking, falling into the ground,lifted from the ground, exiting through a virtual roof, being covered bythe virtual roof and/or eventually becoming represented as 2D objects orsimply disappearing from view. Animation can be provided for any zoom-inor zoom-out operation for any of the venue structures disclosed hereinand for any GUI discussed herein, particularly when structure is addedor more detail about the venue, its layout and points of interest isbeing provided.

In GUI 400, venue 204 is still identified by its corresponding textuallabel 308 and still contains selector 312, indicating that the user maylook inside venue 204 (e.g., via an indoor map for venue 204) byselecting selector 312. In some implementations, the user may lookinside venue 204 by continuing to zoom-in on venue 204.

FIG. 5 illustrates an example graphical user interface 500 containing afirst, indoor map 502 of venue 204 after the user selected selector 312from GUI 300 or GUI 400. GUI 500 includes a 3D view of venue 204 whileother portions are presented in 2D. The map application 132 zooms-in andframes physical structure 506 of venue 204 and displays a plurality ofpoints of interest (POI) 510, 520 and 530 on indoor map 502 based on mapdata for venue 204. As discussed below, indoor map 502 containssimplified representations of the physical structure and location ofPOIs (e.g., stores, restaurants, restrooms), walkways, staircases andother public spaces within venue 204. Non-public spaces are not shown onmap 502 as a user would not be able to access them. In one embodiment,the structures within the view comprises gray storefronts, whitewalkways based on detailed drawing files (e.g., CAD file) provided bythe venue. This initial view is simplified e.g., by smoothing out jaggedor detailed walls to create more simple spaces; combining adjacent storespace and non-public space (e.g., walled and private areas) into onesimple shape; and/or removing unnecessary details such as stairs andsmall open-to-below areas.

In some implementations, labeling of points of interest may be displayeddifferently based on e.g., the POI's relative size in comparison toother POIs in the venue or whether the POI labeling will occlude anotherPOI or POI labeling. The following is a general description of how POIsare labeled and aligned on map 502, but details of POI presentation,labeling, placement with respect to other POIs and the venue in general,and other processing are discussed below in more detail (see “POIDensity” section below).

POI 510, for example, is illustrated by a representation of its physicalstructure 512 and a POI indicator, which in the illustrated example isPOI dot 514. The disclosed embodiments should not be limited toindicators that are dots and that other types of indicators such asletters, arrows, icons, symbols, or graphical elements could be usedinstead of a dot. As will be discussed below in more detail, POI dot 514is positioned at a front portion of structure 512 facing walkway 412,but slightly offset from walkway 412.

POI 520, for example, is illustrated by a representation of its physicalstructure 522, POI category indicator 524 and textual label 526describing POI 520 as “Starbucks,” by way of example. In the illustratedimplementation, since physical structure 522 of POI 520 is relativelysmall in comparison to other larger POIs, such as e.g., POI 530, POIcategory indicator 524 is positioned at a front portion of structure 522facing walkway 412, but slightly offset from walkway 412.

POI 530, for example, is illustrated by a representation of its physicalstructure 532, POI category indicator 534 and textual label 536describing POI 530 as “Bloomingdales,” by way of example. In theillustrated implementation, since physical structure 532 of POI 530 isrelatively large in comparison to other POIs, such as e.g., POIs 510 and520, category indicator 534 is positioned in the approximate center ofstructure 532. In addition, since physical structure 532 of POI 530 isrelatively large in comparison to other POIs, POT 530 could have its ownindoor map (i.e., a venue sub-map or POI specific indoor map).

In some implementations, POI dots (e.g., POI dot 514) and POI categoryindicators of smaller-sized POIs (e.g., POI category indicator 524) arepositioned to align with neighboring POI dots and POI category indictorsin one direction that aligns with their respective entrances. Thisprovides a uniform representation of POIs on indoor map 502. Floorindicator 540 is used to show what floor or level displayed POI 510, 520and 530 are within structure 506 of venue 204. Other POIs shown on map502 (but not labeled or “hidden”) can be identified in one of themanners described above for POIs 510, 520 and 530.

In addition to, or alternatively, and as will be discussed below in moredetail, in some implementations the initial displayed set of POIs can becustomized to match a user's prior experience in venue 204. For example,map application 132 can maintain a user set default/preference for whichPOIs should be displayed in the initial set of POIs. In addition to oralternatively, the application 132 can maintain a list of POIs that theuser last visited, or visited more frequently, which can then be used asthe initially displayed POIs. In some implementations, the application132 can display a set of most popular POIs for all visitors of venue204. This information can be e.g., retrieved from map server 102 alongwith map data in the same manner as discussed above.

GUI 500 also includes placecard 550 for venue 204. In someimplementations, placecard 550 includes information 552 (e.g., name,type of venue, link to an online review) about venue 204. If user device130 is not within venue 204 at that time, field 554 for retrievingdriving directions is also presented in placecard 550. The location ofuser device 130 can be determined e.g., by GPS, Wi-Fi fingerprint maps,beacons, or other known techniques.

In some implementations, placecard 550 also includes venue directory 560containing one or more POI category selectors 562, 564, 566 and 568.Each POI category selector 562, 564, 566 and 568 is associated with acategory (e.g., clothes, food, department store, restroom, etc.) thatthe various POIs of venue 204 have been grouped into. The type of venuedictates the number of and type of categories to be presented bydirectory 560 and that the disclosed embodiments should not be limitedto any number of or type of category for directory 560 or any directoryillustrated herein.

By way of example only, category selector 562 can be used to select acategory of POIs associated with clothing, category selector 564 can beused to select a category of POIs associated with department stores,category selector 566 can be used to select a category of POIsassociated with home goods, and category selector 568 can be used toselect a category of POIs associated with “all shops” at venue 204. Insome implementations, POI category selectors 562, 564, 566 and 568 ofvenue directory 560 are color coded (i.e., each one has its own color).In addition, the colors of the POI dots 514 and POI category indicators524 and 534 are selected to match the colors of POI category selectors562, 564, 566 and 568 used in venue directory 560. In someimplementations, POI dots 514 and POI category indicators 524 and 534will have colors based on their respective categories regardless ofwhether venue directory 560 is displayed or not. As will be explainedbelow in more detail, venue directory 560 can be used by a user to aspecific category of POIs to search for, browse and/or obtain moreinformation about the POIs present in venue 204.

FIG. 6 illustrates an example graphical user interface 600 containing azoomed-in 3D view 602 of indoor map 502 of venue 204 after or while auser performs a zoom-in operation on map 502 on GUI 500. GUI 600 haslevel/floor indicator 640 showing that view 602 is of a secondlevel/floor of venue 204. 3D indoor view 602 illustrates geometricfeatures of POIs 610 as well as other structures found on a particularfloor of venue 204. For example, GUI 600 illustrates POI 610 andstructure 620 comprising escalators 622 and 626 and staircase 632associated with a second floor. POI 610, for example, is illustrated bya 3D representation of its physical structure 612 comprising walls 617and entrance 618. POI category indicator 614 and textual label 616identify POI 610 as “Tory Burch,” by way of example. Structure 620 alsoincludes graphics 624 and 628 respectively associated with andidentifying escalators 622 and 626 and graphic 634 associated with andidentifying staircase 632. Other POIs shown on map 502 can be identifiedin one of the manners described above for POI 610.

In some implementations, the structures shown in 3D view 602 will beintroduced by an animation giving the appearance that e.g., they arisefrom the floor of venue 204 or drop in from the ceiling, pass through avirtual roof, as discussed above. This type of animation can occur inany GUI described herein when a structure is shown in more detail e.g.,by zooming-in on the structure. The animation can also include theremoval of the roof portions when a structure is opened to reveal itscontents (e.g., for the transition of the view venue 204 from GUI 300 toGUI 400). If the user continues to zoom-in, the structures shown in 3Dview 602 can continue to be animated or highlighted, establishing theirpresence in GUI 600. Animation could also be introduced as a userzooms-out. For example, the structures shown in 3D view 602 could appearto be shrinking, falling into the ground, lifted from the ground and/oreventually becoming represented as 2D objects or hidden from viewentirely.

In some implementations, GUI 600 also includes placecard 650. Placecard650 is shown in its pulled-down state such that only an identifyinglabel 652 is presented on the display. Placecard 650 could be pulled-upby a user to review other options (e.g., venue directory) available onGUI 600.

While GUI 600 is being presented to the user, the user is capable ofselecting a POI by touching its representation on 3D view 602. By way ofexample, the user desires to select POI 610 and may do so by any meansallowable on user device 130.

FIG. 7 illustrates an example graphical user interface 700 containing arepresentation of POI 610 from GUI 600 after the user selected POI 610(e.g., by clicking on it in GUI 600). Specifically, POI 610 in itsselected state is now represented by an emphasized or highlightedstructure 712 containing highlighted walls 717 and entrance 718 (shownwith dashed lines). In addition, a much larger POI category indicator714 is also presented on the display. In some implementations, POIcategory indicator 714 may be animated (e.g., flashing, spinning,bouncing up and down) as a further indication that POI 610 was selected.

In some implementations, placecard 720 associated with POI 610 ispresented to the display upon selection of POI 610. In someimplementations, the placecard 720 includes information 722 (e.g., name,type of POI, link to an online review) about selected POI 610 and waysfor contacting the POI (e.g., phone number, text message number or link,instant message link, etc.). If user device 130 is not within venue 204at the time, field 724 for retrieving driving directions is alsopresented in placecard 720. Field 724 can be suppressed entirely if theuser is inside the venue or it can be replaced by a “get directions” forindoor routing directions as discussed below (see “Indoor Venue Routing”section). In addition, placecard 720 can include and graphics/images 726associated with POI 610. The information used to populate placecard 720can be retrieved from map service 104 upon selection of POI 610. Inaddition to, or alternatively, the information used to populateplacecard 720 can be retrieved from map service 104 or another service(e.g., an online service) while GUI 600 or another GUI is presented onthe display of user device 130.

General GUI Behavior—Airports

FIG. 8 illustrates an example graphical user interface 800 of mapapplication 132 that can be presented to a display of user device 130.GUI 800 illustrates a different map 802 (or a different portion of map202 discussed above) showing a different venue 804. In the illustratedimplementation, venue 804 is identified by graphic 805 identifying venue804 as an airport. In addition, venue 804 is identified by region 806representing its external physical structure and location and layout onmap 802 and textual label 808 describing venue 804 as “Los AngelesInternational Airport (LAX),” by way of example only.

In some implementations, GUI 800 can include a tray 820 having graphicalelement 822 for searching for a place or address. For example, graphicalelement 822 can be a text input control. When the user selects graphicalelement 822, user device 130 can present a virtual keyboard that theuser can use to enter textual search parameters. After receiving thesearch parameters, map application 132 can send the search parameters tomap service 104 on map server 102. Map service 104 can return locationsmatching the search parameters as search results. Map application 132can present the search results on the display (discussed below in moredetail). When presenting search results, map 802 can be updated torepresent an area around the location of the search results.

In some implementations, GUI 800 can also include first control 812allowing the user to change map settings for the map application 132.The GUI 800 can also include second control 814 allowing the user tochange the orientation of map 802, if desired.

FIG. 9 illustrates an example graphical user interface 900 containing afirst zoomed-in view of map 802 after the user performed a zoom-inoperation on map 802. In some implementations, when user device 130 hasa touch-sensitive surface, the zoom-in operation can be a gesture suchas e.g., a multi-finger gesture often referred to as “de-pinching”whereby two fingers are placed in contact on the device 130 surface andthen dragged and spread apart from each other as they continue to touchthe surface. The pre-sent disclosure should not be limited to anyparticular technique for zooming-in or out on map 802.

GUI 900 also presents a first zoomed-in representation of venue 904previously shown in GUI 800. In this representation, venue 804 is nowidentified by 3D structure 906 representing venue 804's physicalstructure and location and layout on the zoomed-in map 802. Structure906 includes roof 910 and walls 911. Venue 804 is also identified by itscorresponding textual label 908, which may or may not be a modifiedversion of label 808 from GUI 800. Moreover, venue 804 now containsselector 912 indicating that the user may look inside venue 804 via anindoor map by selecting selector 912. In some implementations, the usermay look inside venue 804 by continuing to zoom-in on venue 804. In someimplementations, as discussed in more detail below, the indoor map willpresent the structural geometry of the inside floor plan for venue 804as well as the identification of points of interest (e.g., stores,security check points, restrooms, etc.) within venue 804.

In some implementations, structure 906 including roof 910 and walls 911will be introduced by an animation giving the appearance that e.g., theyarise from the floor of venue 804 or drop in from the sky, as discussedabove. This type of animation can occur in any GUI described herein whena structure is shown in more detail e.g., by zooming-in on thestructure. If the user continues to zoom-in, the structures shown in GUI900 can continue to be animated or highlighted, establishing theirpresence in GUI 900. Animation could also be introduced as a userzooms-out. For example, the structures shown in GUI 900 could appear tobe shrinking, falling into the ground, lifted from the ground and/oreventually becoming represented as 2D objects or hidden from viewentirely.

Details of 3D structure 906, label 908 and selector 912 are contained inthe map data provided from map server 102 over network 120 to userdevice 130 and processed by map application 132. The map data can besent when the user performs the zoom-in operation or it can be pre-sentto user device 130 and stored on device 130 while a prior GUI (e.g., GUI800) is presented on the display. The present disclosure should not belimited to any particular technique or timing for sending the map datato user device 130.

FIG. 10 illustrates an example graphical user interface 1000 containinga first indoor map 1002 for venue 804 after user selected selector 912in GUI 900. Venue 804 is now represented by a cut-away 3D structure 1006having walls 1011, but whose virtual roof has been removed to reveal apartial inside view of venue 804 including points of interest 1020, 1030and 1040 (e.g., terminals, shops, restaurants, restrooms, security checkpoints) arranged according to the floor plan of venue 804. Details of 3Dstructure 1006 and points of interest 1020, 1030 and 1040 are containedin the map data provided from map server 102 over network 120 to userdevice 130 and processed by map application 132. As with each update ofmap data described herein, map data can be sent when the user selectedselector 912 or it can be pre-sent to user device 130 and stored ondevice 130 while a prior GUI (e.g., GUI 900) is presented on thedisplay.

In some implementations, as discussed below in more detail, points ofinterest may be displayed differently based on e.g., their relative sizein comparison to other POIs in the venue 804, whether they will occludeother POIs, or by the type of category of POI. POI 1020, for example, isillustrated by a representation of its physical structure 1022, POIcategory indicator 1024 and textual label 1026 describing POI 1020 as“Terminal 3,” by way of example. Because POI 1020 is a terminal, itscategory indicator 1024 is positioned at a far end of structure 1022away from walkway 1012. POI 1030, for example, is illustrated by arepresentation of its physical structure 1032, POI category indicator1034 and textual label 1036 describing POI 1030 as “Angel City Brewing,”by way of example. Since POI 1030 is a restaurant within a terminal ofvenue 804, its POI category indicator 1034 placed at an approximatelocation within terminal 1 on map 1002. POI 1040, for example, isillustrated by a representation of its physical structure 1042 and POIcategory indicator 1044. POI 1040 is a parking structure between theterminals in venue 804. Other POIs shown on map 1002 would be identifiedin one of the manners described above for POIs 1020, 1030 and 1040.

GUI 1000 also includes placecard 1050 for venue 804. In someimplementations, placecard 1050 includes information 1052 (e.g., name,type of venue) about venue 804. If the user device 130 is not withinvenue 804 at the time, field 1054 for retrieving driving directions isalso presented in placecard 1050.

In some implementations, placecard 1050 also includes venue directory1060 containing one or more POI category selectors 1062, 1064 and 1066and search selector 1068. Each POI category selector 1062, 1064 and 1066is associated with a category (e.g., terminals, shops, food, restroom,etc.) that the various POIs of venue 804 have been grouped into. Thetype of venue dictates the number of and type of categories to be usedin directory 1060 and that the disclosed embodiments should not belimited to any number of or type of category for directory 1060 or anydirectory illustrated herein.

By way of example only, category selector 1062 can be used to select acategory of POIs associated with terminals, category selector 1064 canbe used to select a category of POIs associated with shops and categoryselector 1066 can be used to select a category of POIs associated withplaces to buy food. Search selector 1068 can be used by a user toinitiate a manual search for a category or specific POI within venue 804(as will be discussed below in more detail). In some implementations,POI category selectors 1062, 1064 and 1066 of venue directory 1060 arecolor coded (i.e., each one has its own color). In addition, the colorsof the POI category indicators 1024, 1034 and 1044 are selected to matchthe colors of POI category selectors 1062, 1064 and 1066 used in venuedirectory 1060. As will be explained below in more detail, venuedirectory 1060 can be used by a user to a specific category of POIs tosearch for, browse and/or obtain more information about the POIs presentin venue 804.

In the illustrated example, Venue 804 includes POIs 1020, 1030 and 1040illustrated in map 1002 that may each have their own indoor map (i.e., avenue sub-map or POI specific indoor map). For example, FIG. 11illustrates an example graphical user interface 1100 containing azoomed-in view of POI 1020 after the user selected POI 1020 from a priorGUI or after the user performed a zoom-in operation. In someimplementations, more details of the POI are presented including a 3Dphysical structure 1122 of POI 1020 and internal geometry such as e.g.,walkways 1112 and POIs 1130 and 1140 within POI 1020. Non-public spacesare not shown as a user would not be able to access them. As with otherimplementations, the introduction of the additional details may beaccompanied by an animation providing a presentation the structures aree.g., arising from the ground, being dropped from above, passing througha roof, etc. In addition, in some implementations, security checkpointswill be exaggerated for easy identification among POIs. In addition to,or alternatively, the structure on map 1002 (or other maps) will bearranged or use de-emphasized sections to define the barriers ofwalkways and other structures in the airport.

In the illustrated example, POI 1130 includes POI category indicator1134 and textual label 1136 describing POI 1130 as “Gladstone's 4 Fish,”by way of example. POI 1140 is a terminal gate, for example, and ismerely represented by gate indicator 1142 at an appropriate positionwithin POI 1020 (i.e., terminal 3).

POI 1020 is also shown with selector 1128 for allowing the user to lookinside and see an even more detailed inside view of POI 1020 (discussedin more detail with respect to GUI 1200).

GUI 1100 also includes placecard 1150 for POI 1020 (i.e., terminal 3).In some implementations, placecard 1150 includes information 1152 (e.g.,name, type of POI, etc.) about POI 1020 or venue 804. Placecard 1150 isshown in its pulled-down state, but could include other information orlinks similar to other placecards discussed herein. In addition, GUI1100 includes floor indicator 1160 alerting the user that the structuresand POIs illustrated on GUI 1100 are from a particular floor of POI1020.

FIG. 12 illustrates an example graphical user interface 1200 containingindoor map 1202 for POI 1020 (i.e., a sub-map for venue 804) after theuser selected selector 1128 in GUI 1100. POI 1020 is now represented bya completely cut-away 3D structure 1204 having 3D walls 1205, but whosevirtual roof has been removed to reveal a partial inside view of POI1020 including additional points of interest 1220 and 1240 (e.g., gates,shops, restaurants, restrooms, security check points) arranged accordingto the floor plan of POI 1020. Details of 3D structure 1204 and pointsof interest 1220 and 1240 are contained in the map data provided frommap server 102 over network 120 to user device 130 and processed by mapapplication 132. As with each update of map data described herein, mapdata can be sent when the user selected selector 1128 or it can bepre-sent to user device 130 and stored on device 130 while a prior GUI(e.g., GUI 1100) is presented on the display.

POI 1220, for example, is illustrated by a representation of itsphysical structure 1222, POI dot 1224 and textual label 1226 describingPOI 1220 as “Security Checkpoint,” by way of example. Because POI 1020is a checkpoint, its POI dot is at a front portion of structure 1222next to walkway 1212. POI 1240, for example, is illustrated by arepresentation of its physical structure 1242 and gate indicator 1244.Other POIs shown on map 1202 would be identified in one of the mannersdescribed herein.

GUI 1200 also includes placecard 1250 for POI 1020. In someimplementations, placecard 1250 includes information 1252 (e.g., name,type of POI) about POI 1020. If user device 130 is not within POI 1020,field 1254 for retrieving driving directions is also presented inplacecard 1250. In some implementations, placecard 1250 also includesPOI directory 1260 containing one or more POI category selectors and asearch selector, similar to the directories discussed above. As withother directories described herein, POI category selectors of directory1260 are color coded (i.e., each one has its own color) and the colorsof POI category dots 1224 and indicators 1244 are selected to match thecolors of POI category selectors used in directory 1260.

Example Venue Directory—Shopping Center

FIG. 13 illustrates an example graphical user interface 1300 containingindoor map 502 of venue 204 similar to GUI 500 illustrated in FIG. 5. Assuch, unless otherwise noted below, the description of features shown onmap 502 are the same as those described above for FIG. 5. GUI 1300 ispresented in the situation where the user is inside of venue 204. Asnoted above, a similar GUI can be presented based on a zoom-in operationperformed on the GUI.

Map 502 shown on GUI 1300 includes current location puck 1301 showingthe user's current location (i.e., location is user device 130) on map502. GUI 1300 also illustrates POIs 510, 520 and 530 that are onlevel/floor 2 of venue 204 as reflected by floor indicator 1340. Puck1301, as well as any current location puck discussed herein, can beupdated and or moved at a rate suitable for an indoor application toavoid jitter or other display issues. Accordingly, in someimplementations, puck 1301 is updated at a slower rate than a rate usedto update a location puck for an outdoor map or navigation application.

GUI 1300 also includes tray 1350. In some implementations, tray 1350includes graphical element 1352 for searching for a place or address.For example, graphical element 1352 can be a text input control. Whenthe user selects graphical element 1352, user device 130 can present avirtual keyboard that the user can use to enter textual searchparameters. After receiving the search parameters, map application 132can send the search parameters to map service 104 on map server 102. Mapservice 104 can return locations matching the search parameters assearch results. Map application 132 can present the search results onthe display of user device 130 (discussed below in more detail).

In some implementations, when a user is outside the venue 204, tray 1350also includes a selectable link 1354 to the venue's placecard (shown inFIG. 14 discussed below) providing further information and optionsavailable for venue 204. Tray 1350 also contains link 1356 to drivingdirections to e.g., the user's home. For example purposes only, and toaid the following discussion, it is presumed that the user has selectedselectable link 1354.

FIG. 14 illustrates an example graphical user interface 1400 containingindoor map 502 of venue 204 along with venue directory 1450. GUI 1400 ispresented on user device 130 upon the user's selection of selectablelink 1354 of GUI 1300. As with other implementations discussed above,regions outside of map 502 are de-emphasized (e.g., greyed-out), drawingthe user's attention to map 502 and structure within venue 204. Map 502shown on GUI 1400 includes current location puck 1301 showing the user'scurrent location (i.e., location is user device 130) on map 502. GUI1400 also illustrates POIs 510, 520 and 530 that are on level/floor 2 ofvenue 204 as reflected by floor indicator 1340.

GUI 1400 also includes placecard 1450 having venue directory 1460containing one or more POI category selectors 1462, 1464, 1466, 1468,1470, 1472 and 1474. Each POI category selector 1462, 1464, 1466, 1468,1470, 1472 and 1474 is associated with a category (e.g., clothes,fashion, department stores, food, drinks, restrooms, etc.) that thevarious POIs of venue 204 have been grouped into. The type of venuedictates the number of and type of categories to be used in directory1460 and that the disclosed embodiments should not be limited to anynumber of or type of category for directory 1460 or any directoryillustrated herein. In addition, the type of categories can be chosenbased on the types of POIs within the venue. Venue directory 1460 alsocomprises search selector 1476. Search selector 1476 can be used by auser to initiate a manual search for a category or specific POI withinvenue 204.

By way of example only, category selector 1462 can be used to select acategory of POIs associated with clothing, category selector 1464 can beused to select a category of POIs associated with fashion, categoryselector 1466 can be used to select a category of POIs associated withdepartment stores, category selector 1468 can be used to select acategory of POIs associated with “all shops” at venue 204, categoryselector 1470 can be used to select a category of POIs associated withplaces to eat/purchase food, category selector 1472 can be used toselect a category of POIs associated with places to drink/purchasedrinks, and category selector 1474 can be used to select a category ofPOIs associated with restrooms. Although not shown, other categoriescould include e.g., gates, security checkpoints and baggage claims.

In some implementations, POI category selectors 1462, 1464, 1466, 1468,1470, 1472 and 1474 of venue directory 1460 are color coded (i.e., eachone has its own color). In addition, the colors of the POI dots 514 andPOI category indicators 524 and 534 are selected to match the colors ofPOI category selectors 1462, 1464, 1466, 1468, 1470, 1472 and 1474 usedin venue directory 1460. In some implementations, POI dots 514 and POIcategory indicators 524 and 534 will have colors based on theirrespective categories regardless of whether venue directory 1460 isdisplayed or not.

As can be appreciated, venue directory 1460 can be used by a user to aspecific category of POIs to search for, browse and/or obtain moreinformation about the POIs present in venue 204. In the followingexample, the user has selected POI selector 1462, initiating a searchfor clothing stores within venue 204.

FIG. 15 illustrates an example graphical user interface 1500 presentedon user device 130 upon the user's selection of POI selector 1462 of GUI1400 (i.e., the selector associated with clothing stores within venue204). Map 502 shown on GUI 1400 includes current location puck 1301showing the user's current location (i.e., location is user device 130)on map 502.

Map 502 includes the structure and layout for the current floor asidentified by floor indicator 1340, as previously described, but withthe difference that only POIs 1510, 1520 and 1530 and other unlabeledPOIs corresponding to the selected POI category (e.g., clothes) for thecurrent floor are displayed. POIs not associated with the selected POIcategory (e.g., clothes) are not identified on map 502 (e.g., the POIdots/indicators are not visible) although their physical structure andlayout remain. Likewise, POIs not on the indicated floor, whethercorresponding to the selected category or not, are not displayed on map502.

Points of interest matching the selected category and found on thecurrent floor can be identified in many ways on map 502. For example,POI 1510 is represented by physical structure 1512, POI categoryindicator 1514 and textual label 1516 describing POI 1510 as“Bloomingdales,” by way of example.

POI 1520, on the other hand, is represented by physical structure 1522,POI result indicator 1524, textual label 1526 describing POI 1520 as“Superdry,” by way of example, and textual label 1528 containing thephrase “+2 more.” As can be appreciated POI result indicator 1524provides information that more than one POI matching the selectedcategory is found at or within structure 1522. In the illustratedexample, POI result indictor 1524 is a graphic with the number 3 in it,meaning that 3 POIs matching the selected category are found at orwithin structure 1522. To prevent cluttering of map 502, only one POIassociated with POI 1520 has textual label 1526 describing the POI'sname. Textual label 1528 alerts the user that “2 more” POIs are alsopresent, in addition to “Superdry.” In some implementations, a user canzoom-in on this region to make the other POIs visible.

POI 1530, for example, is merely represented by physical structure 1532and POI dot 1534. As discussed previously, in some implementations POIcategory indicator 1514, POI result indicator 1524 and POI dot 1534 areshown in a color that matches the color of the selected POI category(i.e., shown in the same color as POI selector 1462). POI indicator1514, POI result indicator 1524 and POI dot 1534 could be animated(e.g., flashing, spinning, bouncing up and down) to draw the user'sattention to the POIs matching the selected category. Other POIsmatching the selected POI category shown on map 502 can be identified inone of the manners described above for POIs 1510, 1520, or 1530.

GUI 1500 also includes placecard 1550 of all search results matching theselected POI even if the POI is on a different floor of venue 204.Placecard 1550 includes field 1552 containing information describing thesearch results. In the present example, field 1552 includes graphic 1553representing the selected category (e.g., using the same graphic as POIcategory indicators and selectors discussed above), textual label 1554describing the search results as “Clothes at Westfield.” With thisinformation, the user is reminded of what category search was performed.Although not shown, a second textual label could be presented todescribe the total number of search results and the number of resultsfound for the current floor. With this additional information, the useris informed of how many POIs matching the searched category were foundand what matching POIs are on the current floor.

Placecard 1550 also contains a listing of POI search results 1560 and1570 in e.g., alphabetical order. In some implementations, the listingof POI search results 1560 and 1570 can be in a different order such ase.g., organized by floor, or personalized based on prior user activityat venue 204, information included on the user's device (e.g., loyaltycard information in emails, text messages, contacts), calendarinformation identifying the venue, a particular POI, etc., or a storecredit card enrolled in Apple pay or another electronic walletapplication. POI search result 1560, for example, includes field 1562comprising information (e.g., name, type of venue, floor indication,link to an online review) about POI and graphic 1564 illustrating orbeing associated with the POI. POI search result 1570, as well as othersearch results in placecard 1550 can contain the same type ofinformation.

In some implementations, placecard information concerning some, but notall, of POI search results 1560 and 1570 are transmitted to user device130 and stored by map application 132 in response to the user'sselection of a POI selector (e.g., POI selector 1462 of GUI 1400). Forexample, map data received from map server 130 may contain placecardinformation about the first 25 POI search results, which will speed upthe transmission between server 102 and user device 130. In addition,transferring less than all of the information will lighten the load onuser device 130 and preserve memory resources and battery power ofdevice 130. Placecard information for other POIs may be retrieved when aspecific POI is selected from the placecard 1560 or the list is scrolledpast the first 25 POI search results. Information about more or lessthan 25 POI search results can be received from map server 102 inresponse to the user's selection of a POI selector (e.g., POI selector1462 of GUI 1400) and the embodiments disclosed herein are not to be solimited.

In some implementations, placecard 1550 also includes filters 1580 forlimiting the amount of results presented to the user. For example,filter 1582 is identified as “All”, meaning that all search results arepresented to the user when selected. In some implementations, this isthe default setting for placecard 1550. In the illustrated example,filter 1584 is identified as “Women's Wear”, meaning that only searchresults associated with women's clothing are presented to the user whenselected. In the illustrated example, filter 1586 is identified as“Men's Wear”, meaning that only search results associated with men'sclothing are presented to the user when selected. In the illustratedexample, filter 1588 is identified as “Children's Wear”, meaning thatonly search results associated with children's clothing are presented tothe user when selected. Placecard 1550 can include any type of filterssuitable for the selected category, or no filters at all. In someimplementations, the filters may be provided by the venue owner and canmatch the categories used for the traditional in-venue directory.

As can be appreciated, placecard 1550 can be pulled up (i.e., extended)to reveal more POI search results. FIG. 16 illustrates an examplegraphical user interface 1600 presented on user device 130 after theuser pulls placecard 1550 up towards the top of GUI 1500. As can be seenin the illustrated example, placecard 1550 now displays POI searchresults 1560, 1570, 1572, 1574 and 1576 as well as filters 1580. Pullingup placecard 1560 also reveals alphabetical index bar 1610. Alphabeticalindex bar 1610 allows the user to jump to any portion of the POI searchresults based on a first letter of the results.

FIG. 17 illustrates an example graphical user interface 1700 presentedon user device 130 upon the user's selection of POI selector 1464 of GUI1400 (i.e., the selector associated with fashion stores within venue204). Map 502 shown on GUI 1700 includes current location puck 1301showing the user's current location (i.e., location is user device 130)on map 502.

Map 502 includes the structure and layout for the current floor asidentified by floor indicator 1740, as previously described, but withthe difference that only POIs 1710, 1720 and 1730 and other POIscorresponding to the selected POI category (e.g., fashion) for thecurrent floor are displayed. POIs not associated with the selected POIcategory (e.g., fashion) are not identified on map 502 (although theirphysical structure and layout remain). Likewise, POIs not on theindicated floor, whether corresponding to the selected category or not,are not displayed on map 502.

Points of interest matching the selected category and found on thecurrent floor can be identified in many ways on map 502. For example,POI 1710 is represented by physical structure 1712, POI categoryindicator 1714 and textual label 1716 describing POI 1710 as“Bloomingdales,” by way of example.

POI 1720, on the other hand, is represented by physical structure 1722,POI result indicator 1724, textual label 1726 describing POI 1720 as“Aldo,” by way of example, and textual label 1728 containing the phrase“+1 more.” As can be appreciated POI result indicator 1724 providesinformation that more than one POI matching the selected category isfound at or within structure 1722. In the illustrated example, POIresult indictor 1724 is a graphic with the number 2 in it, meaning that2 POIs matching the selected category are found at or within structure1722. To prevent cluttering of map 502, only one POI associated with POI1720 has textual label 1726 describing the POI's name. Textual label1728 alerts the user that “1 more” POI is also present, in addition to“Aldo.” In some implementations, a user can zoom-in on this region tomake the other POI visible.

POI 1730, for example, is merely represented by physical structure 1732and POI dot 1734. As discussed previously, in some implementations POIcategory indicator 1714, POI result indicator 1724 and POI dot 1734 areshown in a color that matches the color of the selected POI category(i.e., shown in the same color as POI selector 1464). POI indicator1714, POI result indicator 1724 and POI dot 1734 could be animated(e.g., flashing, spinning, bouncing up and down) to draw the user'sattention to the POIs matching the selected category. Other POIsmatching the selected POI category shown on map 502 would be identifiedin one of the manners described above for POIs 1710, 1720, or 1730.

GUI 1700 also includes placecard 1750 of all search results matching theselected POI even if the POI is on a different floor of venue 204.Placecard 1750 includes field 1752 containing information describing thesearch results. In the present example, field 1752 includes graphic 1753representing the selected category (e.g., using the same graphic as POIcategory indicators and selectors discussed above) and textual label1754 describing the search results as “Fashion at Westfield.” With thisinformation, the user is reminded of what category search was performed.Although not shown, a second textual label could be presented todescribe the total number of search results and the number of resultsfound for the current floor. With this additional information, the useris informed of how many POIs matching the searched category were foundand what matching POIs are on the current floor.

Placecard 1750 also contains a listing of POI search results 1760 and1770 in e.g., alphabetical order. In some implementations, the listingof POI search results 1760 and 1770 can be in a different order such ase.g., organized by floor, or personalized based on prior user activityat venue 204, information included on the user's device (e.g., loyaltycard information in emails, text messages, contacts), calendarinformation identifying the venue, a particular POI, etc., or a storecredit card enrolled in Apple pay or another electronic walletapplication. POI search result 1760, for example, includes field 1762comprising information (e.g., name, type of venue, floor indication,link to an online review) about the POI and graphic 1764 illustrating orbeing associated with the POI. POI search result 1770, as well as othersearch results in placecard 1750 would contain the same type ofinformation.

As discussed above, in some implementations, placecard informationconcerning some, but not all, of POI search results 1760 and 1770 aretransmitted to user device 130 and stored by map application 132 inresponse to the user's selection of a POI selector (e.g., POI selector1464 of GUI 1400). In some implementations, placecard 1750 also includesfilters 1780 for limiting the amount of results presented to the user.For example, filter 1782 is identified as “All”, meaning that all searchresults are presented to the user when selected. In someimplementations, this is the default setting for placecard 1750. In theillustrated example, filter 1784 is identified as “Luxury”, meaning thatonly search results associated with luxurious fashion items arepresented to the user when selected. In the illustrated example, filter1786 is identified as “Jewelry”, meaning that only search resultsassociated with jewelry are presented to the user when selected. In theillustrated example, filter 1788 is identified as “Accessories”, meaningthat only search results associated with accessories are presented tothe user when selected. In the illustrated example, filter 1790 isidentified as “Shoes”, meaning that only search results associated withshoes are presented to the user when selected. Placecard 1750 caninclude any type of filters suitable for the selected category, or nofilters at all.

FIG. 18 illustrates an example graphical user interface 1800 presentedon user device 130 upon the user's selection of POI selector 1470 of GUI1400 (i.e., the selector associated with food within venue 204). Map 502shown on GUI 1800 includes current location puck 1301 showing the user'scurrent location (i.e., location is user device 130) on map 502.

Map 502 includes the structure and layout for the current floor asidentified by floor indicator 1840, as previously described, but withthe difference that only POIs 1820, 1830 and 1840 and other POIscorresponding to the selected POI category (e.g., food) for the currentfloor are displayed. POIs not associated with the selected POI category(e.g., food) are not identified on map 502 (although their physicalstructure and layout remain). Likewise, POIs not on the indicated floor,whether corresponding to the selected category or not, are not displayedon map 502.

Points of interest matching the selected category and found on thecurrent floor can be identified in many ways on map 502. For example,POI 1820 is represented by physical structure 1822, POI food categoryindicator 1824 and textual label 1826 describing POI 1820 as “Pizza MyHeart,” by way of example. POI food category indicator 1824 is a graphicrepresenting pizza, serving as a sub-category of the selected POI foodcategory. Thus, with indicator 1824, the user is presented withadditional clarification that the matching POI result is not only food,but a pizza parlor. The symbol/graphic associated with food POI selector1470 could have been used instead or in addition to POI food categoryindicator 1824.

POI 1830 is represented by physical structure 1832, POI food categoryindicator 1834 and textual label 1836 describing POI 1830 as“Starbucks,” by way of example. POI food category indicator 1834 is agraphic representing coffee, serving as a sub-category of the selectedPOI food category. Thus, with indicator 1834, the user is presented withadditional clarification that the matching POI result is not only food,but a coffee shop. The symbol/graphic associated with food POI selector1470 could have been used instead or in addition to POI food categoryindicator 1834.

POI 1840, for example, is merely represented by physical structure 1842and POI dot 1844. As discussed previously, in some implementations POIfood category indicators 1824 and 1834 and POI dot 1844 are shown in acolor that matches the color of the selected POI category (i.e., shownin the same color as POI selector 1470). POI food category indicators1824 and 1834 and POI dot 1844 could be animated (e.g., flashing,spinning, bouncing up and down) to draw the user's attention to the POIsmatching the selected category. Other POIs matching the selected POIcategory shown on map 502 can be identified in one of the mannersdescribed above for POIs 1820, 1830, or 1840.

GUI 1800 also includes placecard 1850 of all search results matching theselected POI even if the POI is on a different floor of venue 204.Placecard 1850 includes field 1852 containing information describing thesearch results. In the present example, field 1852 includes graphic 1853representing the selected category (e.g., using the same graphic as POIcategory indicators and selectors discussed above) and textual label1854 describing the search results as “Food at Westfield.” With thisinformation, the user is reminded of what category search was performed.Although not shown, a second textual label could be presented todescribe the total number of search results and the number of resultsfound for the current floor. With this additional information, the useris informed of how many POIs matching the searched category were foundand what matching POIs are on the current floor.

Placecard 1850 also contains a listing of POI search results 1860 and1870 in e.g., alphabetical order. In some implementations, the listingof POI search results 1860 and 1870 can be in a different order such ase.g., organized by floor, or personalized based on prior user activityat venue 204, information included on the user's device (e.g., loyaltycard information in emails, text messages, contacts), calendarinformation identifying the venue, a particular POI, etc., or a storecredit card enrolled in Apple pay or another electronic walletapplication. POI search result 1860, for example, includes field 1862comprising information (e.g., name, type of venue, floor indication,link to an online review) about the POI and graphic 1864 illustrating orassociated with the POI. POI search result 1870, as well as other searchresults in placecard 1850, can contain the same type of information.

As discussed above, in some implementations, placecard informationconcerning some, but not all, of POI search results 1860 and 1870 istransmitted to user device 130 and stored by map application 132 inresponse to the user's selection of a POI selector (e.g., POI selector1470 of GUI 1400). In some implementations, placecard 1850 also includesfilters 1880 for limiting the amount of results presented to the user.For example, filter 1882 is identified as “All”, meaning that all searchresults are presented to the user when selected. In someimplementations, this is the default setting for placecard 1850. In theillustrated example, filter 1884 is identified as “Cafes”, meaning thatonly search results associated with cafes are presented to the user whenselected. In the illustrated example, filter 1886 is identified as“Pizza”, meaning that only search results associated with pizza parlorsare presented to the user when selected. In the illustrated example,filter 1888 is identified as “Thai”, meaning that only search resultsassociated with Thai food are presented to the user when selected. Inthe illustrated example, filter 1889 is identified as “Japanese”,meaning that only search results associated with Japanese food arepresented to the user when selected. In the illustrated example, filter1890 is identified as “Mexican”, meaning that only search resultsassociated with Mexican food are presented to the user when selected.Placecard 1850 can include any type of filters suitable for the selectedcategory, or no filters at all. In some implementations, the filters maybe provided by the venue owner and can match the categories used for thetraditional in-venue directory.

FIG. 19 illustrates an example graphical user interface 1900 presentedon user device 130 upon the user's selection of POI selector 1468 of GUI1400 (i.e., the selector associated with all shops within venue 204).Map 502 shown on GUI 1900 includes current location puck 1301 showingthe user's current location (i.e., location is user device 130) on map502. Map 502 includes the structure and layout for the current floor asidentified by floor indicator 1940, as previously described, with POIsfor all shops on the current floor.

GUI 1900 also includes placecard 1950 of all search results matching theselected POI even if the POI is on a different floor of venue 204.Placecard 1950 includes field 1952 containing information describing thesearch results. In the present example, field 1952 includes graphic 1953representing the selected category (e.g., using the same graphic as POIcategory indicators and selectors discussed above) and textual label1954 describing the search results as “All Shops at Westfield.” Withthis information, the user is reminded of what category search wasperformed. Although not shown, a second textual label could be presentedto describe the total number of search results and the number of resultsfound for the current floor. With this additional information, the useris informed of how many POIs matching the searched category were foundand what matching POIs are on the current floor.

Placecard 1950 also contains a listing of POI search results 1960 and1970 in e.g., alphabetical order. In some implementations, the listingof POI search results 1960 and 1970 can be in a different order such ase.g., organized by floor, or personalized based on prior user activityat venue 204, information included on the user's device (e.g., loyaltycard information in emails, text messages, contacts), calendarinformation identifying the venue, a particular POI, etc., or a storecredit card enrolled in Apple pay or another electronic walletapplication. POI search result 1960, for example, includes field 1962comprising information (e.g., name, type of venue, floor indication,link to an online review) about the POI. POI search result 1970, as wellas other search results in placecard 1950 would contain the same type ofinformation.

As discussed above, in some implementations, placecard informationconcerning some, but not all, of POI search results 1960 and 1970 aretransmitted to user device 130 and stored by map application 132 inresponse to the user's selection of a POI selector (e.g., POI selector1468 of GUI 1400).

In some implementations, any of the POIs matching the selected categorycan be selected by selecting its entry in placecards 1550, 1750, 1850and 1950 or directly from map 502. Selection of a specific POI willcause rich information about the POI to be presented to the user on userdevice 130. FIG. 20 illustrates an example graphical user interface 2000presented on user device 130 upon the user's selection of a POIidentified as “Fossil,” by way of example. GUI 2000 includes placecard2050 for the selected POI. Placecard 2050 includes rich informationabout the selected POI (described below).

Placecard 2050 includes field 2052 containing information describing thePOI. In the present example, field 2052 includes information (e.g.,name, type of POI, location within venue, link to an online review).Placecard 2050 also include field 2060 comprising information (e.g., agraphic used by map application 132 to represent this type of venue,name of venue, location, etc.) about the venue the selected POI iscontained in. In some implementations, placecard 2050 can include field2062 with contact information of the POI and selector 2064 forinitiating a phone call to the POI.

In some implementations, placecard 2050 also contains field 2066identifying a website of the POI and link 2068 for linking to the POI'swebsite. In some implementations, placecard 2050 also contains field2070 identifying an address of the POI and selector 2072 for sharing theaddress or other contact information concerning the POI.

In some implementations, the rich placecard information of some, but notall, of POI search results are transmitted to user device 130 and storedby map application 132 in response to the user's selection of a POIselector. For example, map data received from map server 130 may containrich placecard information about the first 25 POI search results, whichwill speed up the transmission between server 102 and user device 130.In addition, transferring less than all of the information will lightenthe load on user device 130 and preserve memory resources and batterypower of device 130. Rich placecard information for other POIs will needto be retrieved when the POI is selected and its placecard 2050 needs tobe displayed. Rich information about more or less than 25 POI searchresults can be received from map server 102 in response to the user'sselection of a POI selector and the embodiments disclosed herein are notto be so limited.

It may be desirable for a user to view the physical structure, layoutand location of POIs that match the selected category, but are not shownon map 502 because they are not located on the current floor. Forexample, map 502 illustrated in GUI 1500 (FIG. 15) only shows thephysical structure, layout and location of POIs 1510, 1520 and 1530 (andother matching POIs) found on floor 2. The remaining matching POIs(i.e., matching POIs on different floors) are found in placecard 1550.The user should be provided with a mechanism for viewing the physicalstructure, layout and location of POIs that match the selected category,but are on a different floor.

FIG. 21 illustrates an example graphical user interface 2100 presentedon user device 130 that includes floor switcher 2120 allowing the userto switch from the current floor (as indicted by shaded identifier 2132)to a different floor, including floors that also contains POIs matchingthe selected POI category.

GUI 2100 contains map 502 containing POIs 1510, 1520 and 1530 and otherPOIs corresponding to the selected POI category (e.g., clothes). Theseare the same POIs 1510, 1520 and 1530 discussed above with respect toGUI 1500. POIs not associated with the selected POI category (e.g.,clothes) are not identified on map 502 (although their physicalstructure and layout remain on map 502). Likewise, POIs not on theindicated floor, whether corresponding to the selected category or not,are not displayed on map 502. In some implementations, floor switch 2120will be presented and can become active when, e.g., a user selects floorindicator 1340 on GUI 1500. The selection also causes field 2150 to bepresented on GUI 2100. Field 2150 includes text 2152 identifying thecurrent floor as “Level Two.”

In some implementations, floor switcher 2120 includes floor indicator2122, 2124, 2126, 2128, 2130, 2132, 2134 and 2136 for each publiclyaccessible floor within venue 204. As can be seen, each indicator 2122,2124, 2126, 2128, 2130, 2132, 2134 and 2136 includes text (i.e., letter,number, or letter/number combination) identifying the floor within venue204. In some implementations, the text within floor indicators 2122,2124, 2126, 2128, 2130, 2132, 2134 and 2136 resemble or match the textused to identify buttons on an elevator within venue 204.

In the present example, indicator 2132 is emphasized to represent thatthis is the current floor shown on map 502. In the illustrated example,diagonal lines are used to show indicator 2132 as emphasized. Othervisual treatments (e.g., different color text or background, shading,flashing or animated text and or background) could be used to emphasizeindicator 2132. Indicators for floors without POI search results will beinactive and will have their text or background de-emphasized (e.g.,greyed-out, removed, have a different background than the backgroundused for active floors) so that the user does attempt to select them. Inthe illustrated example, floors N5, N4 and L3 do not have any POIs thatsatisfy the POI search. For example, the text within indicators 2122,2124 and 2130 are de-emphasized on selector 2120. In the illustratedexample, horizontal lines are used to shown that floors N5, N4 and L3 donot have any POIs that satisfy the POI search. This is merely an exampleand other visual treatments could be used to show floors that are notselectable. In the illustrated example, floors N3, L4, L2, LC and B havePOI search results. As such, the text within indicators 2126, 2128,2132, 2134 and 2136 will not be de-emphasized on selector 2120, meaningthat these indicators are active.

FIG. 22 illustrates an example graphical user interface 2200 presentedon user device 130 that includes a floor switcher 2120 that has beenused to switch the view to a different floor within venue 204. In thepresent example, the user has selected indictor 2128 to view thephysical structure, layout and location of POIs that match the selectedcategory on floor L4. In the present example, indicator 2128 isemphasized to represent that this is the current floor shown on map 502.As discussed above, indicator 2128 may be emphasized by any visualtreatment and the embodiment is not to be limited to the illustratedexample. The selection also causes field 2150 to change its contents.For example, field 2150 now includes text 2252 identifying the currentfloor as “Level Four.”

In some implementations, switching floors causes a quick animation thatconveys vertical movement to be presented on the display. The animationsimulates ascending/descending floor such as the movement in anelevator. In some implementations, current location puck 1301 showingthe user's current location (i.e., location is user device 130) isalways visible regardless of the floor the user is currently viewing. Insome implementations, when the user is on a different floor than the onedisplayed in map 502, a more prominent identifier will be used alongwith or instead of user location puck 1301. For example, FIG. 22Aillustrates an example graphical user interface 2200A, which is similarto GUI 2000 of FIG. 22. GUI 2200A, however, includes textual indicator2250 next to current location puck 1301. In the illustrated exampletextual indicator 2250 is “2F” indicates that the user is on the secondfloor. FIG. 22B illustrates an example graphical user interface 2200B,which is similar to GUI 2000 of FIG. 22. GUI 2200B, however, replacesthe current location puck with a more prominent graphic 2250. Graphic2250 can be an image of the user or some other visual indicator (e.g.,cartoon graphic) to draw the user's attention that he or she is on adifferent floor than what is shown in map 502. GUI 2200B also includestextual indicator 2250 next to graphic 2250 to indicate that the user ison the second floor.

Example Venue Directory—Airports

FIG. 23 illustrates an example graphical user interface 2300 containingindoor map 1002 of venue 804 along with venue directory 2350. As withother implementations discussed above, regions outside of map 1002 arede-emphasized (e.g., greyed-out), drawing the user's attention to themap 1002 and structure within venue 804. Map 1002 shown on GUI 2300includes current location puck 2301 showing the user's current location(i.e., location is user device 130) on map 1002.

GUI 2300 also includes placecard 2350 having venue directory 2360containing one or more POI category selectors 2362, 2364 and 2366 andsearch selector 2368. Each POI category selector 2362, 2364 and 2366 isassociated with a category (e.g., terminals, shops, food, restrooms,etc.) that the various POIs of venue 804 have been grouped into. Thetype of venue dictates the number of and type of categories to be usedin directory 2360 and that the disclosed embodiments should not belimited to any number of or type of category for directory 2360 or anydirectory illustrated herein. Venue directory 1460 also comprises searchselector 2368. Search selector 2368 can be used by a user to initiate amanual search for a category or specific POI within venue 804.

By way of example only, category selector 2362 can be used to select acategory of POIs associated with terminals, category selector 2364 canbe used to select a category of POIs associated with shops, and categoryselector 2366 can be used to select a category of POIs associated withplaces to eat/purchase food within venue 804.

In some implementations, POI category selectors 2362, 2364 and 2366 ofvenue directory 2360 are color coded (i.e., each one has its own color).In addition, the colors of the POI dots and POI category indicators onmap 1002 or other maps are selected to match the colors of POI categoryselectors 2362, 2364 and 2366 used in venue directory 2360. In someimplementations, the POI dots and POI category indicators on map 1002 orother maps will have colors based on their respective categoriesregardless of whether venue directory 2360 is displayed or not.

In some implementations, placecard 2350 can include field 2370 withcontact information of venue 804 and selector 2372 for initiating aphone call to venue 804. In some implementations, placecard 2350 alsocontains field 2380 identifying a website of venue 804 and link 2382 forlinking to venue 804's website.

As can be appreciated, venue directory 2360 can be used by a user to aspecific category of POIs to search for, browse and/or obtain moreinformation about the POIs present in venue 804. In the followingexample, the user has selected POI selector 2362, initiating a searchfor terminals within venue 804.

FIG. 24 illustrates an example graphical user interface 2400 presentedon user device 130 upon the user's selection of POI category selector2362 of GUI 2300 (i.e., the selector associated with terminals withinvenue 804). Map 1002 shown on GUI 2400 includes current location puck2301 showing the user's current location (i.e., location is user device130) on map 1002.

Map 1002 includes the structure, location and layout for POI 2410 andother POIs corresponding to the selected POI category (e.g., terminals).POI 2410 is represented by physical structure 2412, POI categoryindicator 2414 and textual label 2416 describing POI 2410 as “Terminal3,” by way of example. Other POIs matching the selected POI category(e.g., terminals) can be identified in the same manner.

GUI 2400 also includes placecard 2450 of all search results matching theselected POI category. Placecard 2550 includes field 2452 containinginformation describing the search results. In the present example, field2452 includes graphic 2453 representing the selected category (e.g.,using the same graphic as POI category indicators and selectorsdiscussed above) and textual label 2454 describing the search results as“Terminals at LAX.” With this information, the user is reminded of whatcategory search was performed. Although not shown, a second textuallabel could be presented to describe the number of search results. Insome implementations, if it is detected that the user is within aterminal when POI category selector 2362 of GUI 2300 was selected, a GUIpresenting that terminal or its placecard will be presented instead ofall terminals as shown in GUI 2400 (see e.g., GUI 2600 of FIG. 26).

Placecard 2450 also contains a listing of POI search results 2460 and2470 in e.g., alphabetical order. In some implementations, the listingof POI search results 2460 and 2470 can be in a different order such ase.g., organized by prior user activity at venue 804. POI search result2460, for example, includes field 2462 comprising information (e.g.,name, airline) about the POI. POI search result 2470, as well as othersearch results in placecard 2450 would contain the same type ofinformation.

As can be appreciated, placecard 2450 can be pulled up to reveal morePOI search results. FIG. 25 illustrates an example graphical userinterface 2500 presented on user device 130 when the user pullsplacecard 2450 up towards the top of GUI 2500. As can be seen in theillustrated example, placecard 2450 now displays POI search results2460, 2470, 2472, 2474, 2476, 2478 and 2480.

In the following example, the user has selected terminal 3 from the POIsmatching the selected category. As discussed above, selecting a terminalPOI will cause another indoor map 1202 to be presented (i.e., a sub-mapfor venue 804) for the terminal POI (e.g., POI 2410 illustrated in GUI2400). This can occur after the user selected the terminal from eitherplacecard 2450 or by clicking on the POI of the terminal on map 1002.

FIG. 26 illustrates an example graphical user interface 2600 containingindoor map 1202 of POI 2410 along with placecard 2650 and directory2660. As with other implementations discussed above, regions outside ofmap 1202 are de-emphasized, drawing the user's attention to the map 1202and structure within POI 2410. Map 1202 shown on GUI 2600 includescurrent location puck 2301 showing the user's current location (i.e.,location is user device 130) on map 1202. Map 1202 also includes asecurity checkpoint POI 1220, as well as other POIs discussed above withrespect to FIG. 12 and GUI 1200.

Directory 2660 can contain one or more POI category selectors 2662, 2664and 2666 and a search selector 2668. Each POI category selector 2662,2664 and 2666 is associated with a category (e.g., shops, food,restrooms, etc.) that the various POIs of POI 2410 have been groupedinto. The type of venue dictates the number of and type of categories tobe used in directory 2660 and that the disclosed embodiments should notbe limited to any number of or type of category for directory 2660 orany directory illustrated herein. Directory 2660 also comprises a searchselector 2668. Search selector 2668 can be used by a user to initiate amanual search for a category or specific POI within POI 2410 or venue804.

By way of example only, category selector 2662 can be used to select acategory of POIs associated with shops, category selector 2664 can beused to select a category of POIs associated with places to eat/purchasefood within venue 804, and category selector 2666 can be used to selecta category of POIs associated with restrooms.

In some implementations, POI category selectors 2662, 2664 and 2666 ofdirectory 2660 are color coded (i.e., each one has its own color). Inaddition, the colors of the POI dots and POI category indicators on map1202 or other maps are selected to match the colors of POI categoryselectors 2662, 2664 and 2666 used in directory 2460.

In some implementations, placecard 2650 can include field 2670identifying airlines or other companies, etc. within POI 2410. As can beappreciated, placecard 2650 can be pulled up to reveal more information.FIG. 27 illustrates an example graphical user interface 2700 presentedon user device 130 when the user pulls placecard 2650 up towards the topof GUI 2700. As can be seen in the illustrated example, placecard 2650now includes field 2672 containing information describing where the POIis located (i.e., venue 804). In some implementations, placecard 2650can include field 2674 with contact information of the POI and selector2676 for initiating a phone call to the POI. In some implementations,placecard 2650 also contains field 2678 identifying a website of the POIor venue 804 and a link 2680 for linking to the website. In someimplementations, placecard 2650 also contains field 2682 identifying anaddress of the POI or venue 804 and selector 2684 for sharing theaddress or other contact information concerning the POI or venue 804.

FIG. 28 illustrates an example graphical user interface 2800 presentedon user device 130 upon the user's selection of POI selector 2664 of GUI2700 (i.e., the selector associated with food within POI 2410). Map 1202shown on GUI 2800 includes current location puck 2301 showing the user'scurrent location (i.e., location is user device 130) on map 1202.

Map 1202 includes the structure and layout for the current floor asidentified by floor indicator 2840. For example, POIs 2810 and 2820 andother POIs corresponding to the selected POI category (e.g., food) forthe current floor are displayed. POIs not associated with the selectedPOI category (e.g., food) are not identified on map 1202 (although theirphysical structure and layout remain). Likewise, POIs not on theindicated floor, whether corresponding to the selected category or not,are not displayed on map 1202.

Points of interest matching the selected category and found on thecurrent floor can be identified in many ways on map 1202. For example,POI 2810 is represented by physical structure 2812, POI food categoryindicator 2814 and textual label 2816 describing POI 2810 as “Blue AngelBrewery,” by way of example. POI food category indicator 2814 is agraphic representing a beer mug, serving as a sub-category of theselected POI food category. Thus, with indicator 2814, the user ispresented with additional clarification that the matching POI result isnot only food, but is most likely a bar or place to get a drink. Thesymbol/graphic associated with food POI selector 2664 could have beenused instead or in addition to POI food category indicator 2814.

POI 2820 is represented by structure 2822, POI result indicator 2824,textual label 2826 describing POI 2820 as “Chipotle,” by way of example,and textual label 2828 containing the phrase “+2 more.” As can beappreciated POI result indicator 2824 provides information that morethan one POI matching the selected category is found at or withinstructure 2822. In the illustrated example, POI result indictor 2824 isa graphic with the number 3 in it, meaning that 3 POIs matching theselected category are found at or within structure 2822. To preventcluttering of map 1202, only one POI associated with POI 2820 hastextual label 2826 describing the POI's name. Textual label 2828 alertsthe user that “2 more” POIs are also present, in addition to “Chipotle.”

GUI 2800 also includes placecard 2850 of all search results matching theselected POI even if the POI is on a different floor of POI 2410.Placecard 2850 includes field 2852 containing information describing thesearch results. In the present example, field 2852 includes graphic 2853representing the selected category (e.g., using the same graphic as POIcategory indicators and selectors discussed above), first textual label2854 describing the search results as “Food at Terminal 3” and secondtextual label 2855 describing the search results as “7 places.” Withthis information, the user is reminded of what category search wasperformed, how many POIs matching the searched category were found, andwhat matching POIs are on the current floor.

Placecard 2850 also contains a listing of POI search results 2860 and2870 in e.g., alphabetical order. In some implementations, the listingof POI search results 2860 and 2870 can be in a different order such ase.g., organized by floor, or personalized based on prior user activityat venue 204, information included on the user's device (e.g., loyaltycard information in emails, text messages, contacts), calendarinformation identifying the venue, a particular POI, etc., or a storecredit card enrolled in Apple pay or another electronic walletapplication. POI search result 2860, for example, includes field 2862comprising information (e.g., name, type of venue, floor indication,link to an online review) about the POI and graphic 2864 illustrating orassociated with the POI. Field 2862 further comprises indication 2865 asto whether search result 2860 is pre or post security. This is verybeneficial information as once a user has gone through security,pre-security check points would not be desirable. POI search result2870, as well as other search results in placecard 2850 would containthe same type of information.

FIG. 29 illustrates an example graphical user interface 2900 presentedon user device 130 upon the user's selection of a POI identified as“Starbucks,” by way of example. GUI 2900 includes placecard 2950 for theselected POI. Placecard 2950 includes rich information about theselected POI.

Placecard 2950 includes field 2952 containing information describing thePOI. In the present example, field 2952 includes information (e.g.,name, type of POI, location within venue, link to an online review).Beneficially, field 2952 includes indication 2953 as to whether theselected POI is pre or post security. Placecard 2950 also includes field2960 comprising information (e.g., a graphic used by map application 132to represent this type of venue, name of venue, location, etc.) aboutthe venue the selected POI is contained in. In some implementations,placecard 2950 can include field 2962 with contact information of thePOI and selector 2964 for initiating a phone call to the POI.

In some implementations, placecard 2950 also contains field 2966identifying a website of the POI and link 2968 for linking to the POI'swebsite. In some implementations, placecard 2950 also contains field2970 identifying an address of the POI and selector 2972 for sharing theaddress or other contact information concerning the POI.

In some implementations, the rich placecard information of some, but notall, of POI search results are transmitted to user device 130 and storedby map application 132 in response to the user's selection of a POIselector. For example, map data received from map server 130 may containrich placecard information about the first 25 POI search results, whichwill speed up the transmission between server 102 and user device 130.In addition, transferring less than all of the information will lightenthe load on user device 130 and preserve memory resources and batterypower of device 130. Rich placecard information for other POIs will needto be retrieved when the POI is selected and its placecard 2950 needs tobe displayed. Rich information about more or less than 25 POI searchresults can be received from map server 102 in response to the user'sselection of a POI selector and the embodiments disclosed herein are notto be so limited.

FIG. 30 illustrates an example graphical user interface 3000 presentedon user device 130 upon the user's selection of POI selector 2666 of GUI2600 (i.e., the selector associated with restrooms within POI 1410). Map1202 shown on GUI 2600 includes current location puck 2301 showing theuser's current location (i.e., location is user device 130) on map 1202along with the structure and layout for the current floor as identifiedby floor indicator 2840. POIs 3010, 3020 and 3030 and other POIscorresponding to the selected POI category (e.g., restrooms) for thecurrent floor are displayed. Points of interest matching the selectedcategory and found on the current floor can be identified in many wayson map 1202. For example, POI 3010 is represented by physical structure3012, POI restroom indicator 3014, textual label 3016 describing POI3010 as “Restroom,” by way of example, and textual label 3018 furtherdescribing POI 3010 as a restroom for “men,” by way of example. In thisexample POI restroom indicator 3014 is a graphic typically used torepresent a men's bathroom. As noted above with respect to FIGS. 22A and22B, when the user is on a different floor than the one displayed in map1202, a more prominent identifier can be used along with or instead ofuser location puck 2301.

POI 3020 is represented by physical structure 3022, POI restroomindicator 3024, textual label 3026 describing POI 3020 as “Restroom,” byway of example, and textual label 3028 further describing POI 3020 as arestroom for “women,” by way of example. In this example POI restroomindicator 3024 is a graphic typically used to represent a women'sbathroom.

POI 3030 is represented by physical structure 3032, POI restroomindicator 3034, textual label 3036 describing POI 3030 as “Restroom,” byway of example, and textual label 3038 further describing POI 3030 as arestroom with a “changing station,” by way of example. In this examplePOI restroom indicator 3034 is a graphic typically used to represent afamily bathroom.

POI restroom indicators 3014, 3024 and 3034 could be animated (e.g.,flashing, spinning, bouncing up and down) to draw the user's attentionto the POIs matching the selected category. Other POIs matching theselected POI category shown on map 1202 can be identified in one of themanners described above for POIs 3010, 3020 or 3030.

GUI 3000 also includes field 3450 used to identify the search resultsshown on GUI 3000. In the present example, field 3450 includes graphic3452 representing the selected category (e.g., using the same graphic asPOI category indicators and selectors discussed above), first textuallabel 3453 describing the search results as “Restrooms at Terminal 3”and second textual label 3455 describing the search results as “5places.” With this information, the user is reminded of what categorysearch was performed, how many POIs matching the searched category werefound, and what matching POIs are on the current floor.

Searching

It is also desirable for a user to search for and see the inside ofvenues prior to visiting a particular venue on a map. That is, it isdesirable for a user to be presented with a venue and an inside view ofa venue from e.g., a general searching function of map application 132.FIG. 31 illustrates an example graphical user interface 3100 of mapapplication 132 that can be presented to a display of user device 130 toinitiate a search using application 132. GUI 3100 illustrates tray 220(FIG. 2) in a pulled-up state revealing field 212 for performing amanual search for a place or address, search directory 3110, link 3130to a placecard associated with a particular venue (e.g., Westfield SanFrancisco Centre), link 3132 to driving directions to the user's home,and virtual keyboard 3140. As discussed in more detail below, a manualsearch in field 212 utilizes keyboard 3140.

In some implementations, search directory 3110 contains one or moresearch category selectors 3112, 3114, 3116, 3118, 3120, 3122, 3124 and3126. Each search category selector 3112, 3114, 3116, 3118, 3120, 3122,3124 and 3126 is associated with a category (e.g., restaurants, shops,bars, gas stations, etc.) that the various types of venues have beengrouped into. It should be appreciated other types of venues could beincluded and the disclosed embodiments should not be limited to anynumber of or type of category for directory 3110.

By way of example only, category selector 3112 can be used to select acategory of venues associated with restaurants, category selector 3114can be used to select a category of venues associated with places to getfast food, category selector 3116 can be used to select a category ofvenues associated with coffee shops, category selector 3118 can be usedto select a category of venues associated with bars, category selector3120 can be used to select a category of venues associated with placesto buy groceries, category selector 3122 can be used to select acategory of places to shop, category selector 3124 can be used to selecta category of venues associated with hotels, category selector 3126 canbe used to select a category of venues associated with gas stations.

In some implementations, venue category selectors 3112, 3114, 3116,3118, 3120, 3122, 3124 and 3126 of search directory 3110 are color coded(i.e., each one has its own color). In addition, venues presented on map202 at any time would have colors matching category selectors 3112,3114, 3116, 3118, 3120, 3122, 3124 and 3126 used in search directory3110. Searching using search directory 3110 is performed by selectingone of the venue category selectors 3112, 3114, 3116, 3118, 3120, 3122,3124 and 3126. After the selection, a list of venues matching theselected category will be presented on user device 130 (described belowin more detail).

FIG. 32 illustrates an example graphical user interface 3200 of mapapplication 132 that can be presented to a display of user device 130 toinitiate a manual search for a venue using application 132. GUI 3200illustrates text being entered into field 3222 to initiate a manualsearch. In some implementations, map application 132 uses anauto-complete feature to suggest venues names, places, searchdirectories, etc. In the illustrated example, the user has not finishedtyping the search query, but map application 132 has automaticallycompleted the query and displays listing 3250 of search results 3260,3270 and 3280 that is populated as the user enters text into field 3222.

Search result 3260 includes graphic 3263 representing one of venuecategory selectors 3112, 3114, 3116, 3118, 3120, 3122, 3124 and 3126 ofsearch directory 3110 (GUI 3100), first textual label 3264 describingthe search result by its venue name as “Westfield San Francisco Centre,”by way of example, second textual label 3265 providing an address anddistance to the venue, and link 3266 to an online review of the venue.In the illustrated example, the venue identified in search result 3260includes an indoor map as discussed herein. Accordingly, search result3260 includes selector 3267 for allowing the user to select and lookinside the venue (i.e., view the indoor map of the venue). Searchresults 3270 and 3280 list venues that do not have a viewable indoormap. Otherwise, search results 3270 and 3280 can contain similarinformation (i.e., corresponding graphic, venue name, location, links toonline reviews) about their respective venues.

The user can select any search result 3260, 3270 and 3280 from list 3250to have its location shown on a map (e.g., map 202) as is typically donein mapping applications. In addition, because search result 3260includes selector 3267 for allowing the user to select and look insidethe venue (i.e., view the indoor map of the venue), the user can chooseto take an indoor view of the venue associated with result 3260 byselecting selector 3267. The indoor view could be a view similar toindoor map 502 discussed above.

FIG. 33 illustrates an example graphical user interface 3300 of mapapplication 132 that can be presented to a display of user device 130 toinitiate a manual search using a name of a specific venue usingapplication 132. GUI 3300 illustrates text being entered into field 3322to initiate a manual search for a name of a specific venue “Kate Spade,”by way of example. In some implementations, map application 132 uses anauto-complete feature to suggest the venue name. In the illustratedexample, the user has not finished typing the search query, but mapapplication 132 has automatically completed the query and displayslisting 3350 of search results 3360, 3370 and 3380 for “Kate Spade” thatis populated as the user enters text into field 3322.

Search result 3360 includes graphic 3363 representing one of venuecategory selectors 3112, 3114, 3116, 3118, 3120, 3122, 3124 and 3126 ofsearch directory 3110 (GUI 3100), first textual label 3364 describingthe search result by its venue name as “Kate Spade,” by way of example,second textual label 3365 providing an address and distance to thevenue, and link 3366 to an online review of the venue. In theillustrated example, the venue identified in search result 3360 is foundwithin a venue that includes an indoor map as discussed herein.Accordingly, search result 3360 includes selector 3367 for allowing theuser to select and look inside the venue (i.e., view the indoor map ofthe venue) associated with the search result. Search results 3370 and3380 list venues that do not have a viewable indoor map. Otherwise,search results 3370 and 3380 can contain similar information (i.e.,corresponding graphic, venue name, location, links to online reviews)about their respective venues.

As with other listings of search results discussed herein, the user canselect any search result 3360, 3370 and 3380 from list 3350 to have itslocation shown on a map (e.g., map 202) as is typically done in mappingapplications. In addition, because search result 3360 includes selector3367 for allowing the user to select and look inside the venue (i.e.,view the indoor map of the venue) associated with the search result, theuser can choose to take an indoor view of the venue associated withresult 3360 by selecting selector 3367. The indoor view could be a viewsimilar to indoor map 502 discussed above. In some implementations, theindoor view will be zoom-in such that the initial POI density is visible(see “POI Density” section). In addition, the indoor view may bezoomed-in even further for a smaller venue. In some implementations,application 132 will not zoom-out to the point where the outside venuestructure is presented on the display even when all POIs cannot bedisplayed in the GUI. This way, the user's view is not taken outside thevenue.

FIG. 34 illustrates an example graphical user interface 3400 of mapapplication 132 that can be presented to a display of user device 130 toinitiate a manual search for a category of venues using application 132.GUI 3400 illustrates text being entered into field 3422 to initiate amanual search for a category of venues such as venues that provide“Coffee,” by way of example. In some implementations, map application132 uses an auto-complete feature to suggest the venue name. In theillustrated example, the user has not finished typing the search query,but map application 132 has automatically completed the query anddisplays listing 3450 of search results 3460, 3470, 3480 and 3490 forvenues that provide “Coffee” that is populated as the user enters textinto field 3422.

Search result 3460 comprises graphic 3463 representing one of venuecategory selectors 3112, 3114, 3116, 3118, 3120, 3122, 3124 and 3126 ofsearch directory 3110 (GUI 3100), first textual label 3464 describingthe search result as “Coffee & Tea at Westfield,” by way of example.Thus, search result 3460 provides a venue having one or more coffeeshops near the user's location. In some implementations, a predetermineddistance can be used as threshold for presenting results near the user.In some implementations, search results can be presented differentlybased on whether the user is inside or outside of a venue. An example ofa search and results presented when a user is inside a venue isdescribed below (see “In-Venue Search” section). In someimplementations, search results are prioritized differently based onwhether a user is inside or outside a venue. For example, when inside avenue, the search results can be prioritized based on prior useractivity, information included on the user's device (e.g., loyalty cardinformation in emails, text messages, contacts), calendar information, aparticular POI, etc., or a store credit card enrolled in Apple pay oranother electronic wallet application. When outside a venue, the searchresults can be prioritized such that a venue with an inside view islisted first. Alternatively, when outside a venue, the search resultscan be prioritized such that a venue with an inside view is listednormally among other search results with no preference over the othersearch results. Other information such as an address, distance to thevenue, and/or link to an online review of the venue may also beprovided. In the illustrated example, the venue identified in searchresult 3460 includes an indoor map as discussed herein. Accordingly,search result 3460 includes selector 3467 for allowing the user toselect and view the indoor map of the venue associated with the searchresult. In some implementations, selecting the selector 3467 can causesearch results from within the venue to be displayed. In someimplementations, selecting the selector 3467 can cause a floor of thevenue with the most matching search results to be displayed. In someimplementations, selecting the selector 3467 can cause a floor of thevenue with the most popular of the search results to be displayed.

Search results 3470, 3480 and 3490 list venues that do not have aviewable indoor map. Otherwise, search results 3470, 3480 and 3490 cancontain similar information (i.e., corresponding graphic, venue name,location, links to online reviews) about their respective venues.

As noted above, search result 3460 provides a venue having one or morecoffee shops therein. In some implementations, the returned searchresults could identify a specific coffee shop by its name (e.g., “CaféBellini” as shown in result 3480). In addition, the returned searchresults could identify coffee shops nearby, i.e., within a certainproximity of user device 130, (e.g., “Coffee & Tea—Search Nearby” asshown in result 3470).

As with other listings of search results discussed herein, the user canselect any search result 3460, 3470, 3480 and 3490 from list 3450 tohave its location or locations shown on a map (e.g., map 202) as istypically done in mapping applications. In addition, because searchresult 3460 includes selector 3467 for allowing the user to select andview the indoor map of the venue associated with the search result, theuser can choose to take an indoor view of the venue associated withresult 3460 by selecting selector 3467. The indoor view could be a viewsimilar to indoor map 502 discussed above.

It is also desirable to access the venue features of map application 132from other applications and features of user device 130. For example,most computers, smart phones and tablets include a web browser such ase.g., the Safari web browser from Apple, Inc. These web browsers allow auser to search for all types of information, including information aboutvenues, where they are located and driving directions to the venue, toname a few. It is desirable to access the features of map application132 discussed herein from the web browser such that the user may accessan indoor map, search for points of interest using a particular venuedirectory, and view points of interests in the manners discussed herein.

FIG. 35 illustrates an example graphical user interface 3500 that can bepresented to a display of user device 130 which provides access tofeatures of map application 132 through a search using a web browser.GUI 3500 illustrates text being entered into field 3522 of the webbrowser to initiate a manual search for items associated with “Coffee,”by way of example. In the illustrated example, the web browser uses anauto-complete feature to suggest the venue name. In the illustratedexample, the user has not finished typing the search query, but thebrowser has automatically completed the query and displays listing 3550of search results 3560, 3566, 3570, 3572, 3574, 3576 and 3578corresponding to the query of “Coffee.”

Search result 3560 is a result returned from map application 132 and hasthe appearance of search results discussed herein for map application132. For example, search result 3560 comprises graphic 3563 representingone of venue category selectors used in the venue and search directoriesof application 132 discussed herein (e.g., category selectors 3112,3114, 3116, 3118, 3120, 3122, 3124 and 3126 of search directory 3110found on example GUI 3100). Search result 3560 also includes firsttextual label 3564 describing the search result as “Coffee & Tea atWestfield,” by way of example. Other information such as an address,distance to the venue, and/or link to an online review of the venue mayalso be provided. In the illustrated example, the venue identified insearch result 3560 includes an indoor map as discussed herein.Accordingly, search result 3560 includes selector 3567 for allowing theuser to select and view the indoor map of the venue associated with thesearch result. Thus, the user's browser experience has been enhanced byproviding access to the venue viewing, searching and other features ofmap application 132.

Search result 3566 indicates that there are more locations within mapapplication 133 that can be accessed by selecting this result. Searchresults 3570, 3572 3574, 3576 and 3580 are the types of search resultstypically found when searching using a web browser. For example, searchresult 3570 is a link to do a specific search such as a search for“DuckDuckGo.” Search result 3572 is a link to do a search for “coffee.”Search result 3574 is a link to do a search for “coffee machine.” Searchresult 3576 is a link to do a search for “coffee mugs.” Search result3578 is a link to do a search for “coffee tables.”

There are other applications or programs for accessing information onuser device 130 that would also enhance the user's experience if theapplication or program could access the features of map application 132.For example, there are applications and programs used to search for andorganize files and other information on a computer, smart phone ortablet such as e.g., the Spotlight application by Apple, Inc. It isdesirable to access the features of map application 132 discussed hereinfrom an external application providing searching capability such ase.g., Spotlight.

FIG. 36 illustrates an example graphical user interface 3600 that can bepresented to a display of user device 130 which provides access tofeatures of map application 132 through a search application such ase.g., the Spotlight application. GUI 3600 illustrates text being enteredinto field 3622 of the search application to initiate a manual searchfor items associated with “Coffee,” by way of example. In theillustrated example, the search application displays listing 3650 ofsearch results 3660, 3670, 3680, 3682 and 3684 corresponding to thequery of “Coffee.”

Search result 3660 is a result returned from map application 132 and hasthe appearance of search results discussed herein for map application132. For example, search result 3660 comprises graphic 3663 representingone of venue category selectors used in the venue and search directoriesof application 132 discussed herein (e.g., category selectors 3112,3114, 3116, 3118, 3120, 3122, 3124 and 3126 of search directory 3110found on example GUI 3100). Search result 3660 also includes firsttextual label 3664 describing the search result as “Coffee & Tea atWestfield,” by way of example. Other information such as an address,distance to the venue, and/or link to an online review of the venue mayalso be provided. In the illustrated example, the venue identified insearch result 3660 includes an indoor map as discussed herein.Accordingly, search result 3660 includes selector 3667 for allowing theuser to select and look inside the venue (i.e., view the indoor map ofthe venue) associated with the search result. Thus, the user's searchingexperience has been enhanced by providing access to the venue viewing,searching and other features of map application 132.

Search result 3670 is another search result returned from mapapplication 132 and has the appearance of search results discussedherein for map application 132. For example, search result 3670 includesgraphic 3673 representing one of venue category selectors used in thevenue and search directories of application 132 discussed herein. Searchresult 3670 also includes first textual label 3674 describing the searchresult as “Starbucks,” by way of example. Search result 3670 includestextual label 3675 proving an address and location of the identifiedvenue, and link 3676 to an online review of the venue. In theillustrated example, the venue identified in search result 3670 includesan indoor map as discussed herein. Accordingly, search result 3670includes selector 3677 for allowing the user to select and look insidethe venue (i.e., view the indoor map of the venue) associated with thesearch result. Thus, the user's searching experience has been enhancedby providing access to the venue viewing, searching and other featuresof map application 132.

Search results 3680, 3682 and 3684 are the types of search resultstypically found when searching using the searching application. Forexample, search result 3680 is a link to a specific venue “MazarineCoffee.” Search result 3682 is a link to do a search for “coffee meetsbagel.” Search result 3684 is a link to do a search for a “coffeetable.”

There are voice command applications and programs that allow a user todo searches via voice commands such as e.g., the Ski application andprogram by Apple, Inc. It is desirable to access the features of mapapplication 132 discussed herein from an external command applicationsand programs that allow a user to do searches via voice commands such ase.g., the Ski application and program by Apple, Inc.

FIG. 37 illustrates an example graphical user interface 3700 that can bepresented to a display of user device 130 which provides access tofeatures of map application 132 using voice commands through anintelligent personal assistant such as e.g., the Ski application. GUI3700 illustrates a voice command 3720 that was entered and accepted bythe voice command application to initiate a search for items associatedwith “Coffee,” by way of example. In the illustrated example, the searchapplication displays listing 3750 of search results 3760, 3770, 3780 and3790 corresponding to the query of “Coffee.”

Search result 3760 is a result returned from map application 132 and hasthe appearance of search results discussed herein for map application132. For example, search result 3760 includes graphic 3763 representingone of venue category selectors used in the venue and search directoriesof application 132 discussed herein (e.g., category selectors 3112,3114, 3116, 3118, 3120, 3122, 3124 and 3126 of search directory 3110found on example GUI 3100). Search result 3760 also includes firsttextual label 3764 describing the search result as “Coffee & Tea atWestfield,” by way of example. Other information such as an address,distance to the venue, and/or link to an online review of the venue mayalso be provided. In the illustrated example, the venue identified insearch result 3760 includes an indoor map as discussed herein.Accordingly, search result 3760 includes selector 3767 for allowing theuser to select and look inside the venue (i.e., view the indoor map ofthe venue) associated with the search result. Thus, the user's voicecommanded searching experience has been enhanced by providing access tothe venue viewing, searching and other features of map application 132.

Search result 3770 is another search result returned from mapapplication 132 and has the appearance of search results discussedherein for map application 132. For example, search result 3770comprises image 3773 representing the venue, first textual label 3774describing the search result as “Starbucks,” by way of example, secondtextual label 3775 proving an address and location of the identifiedvenue, and link 3776 to an online review of the venue. In theillustrated example, the venue identified in search result 3770 includesan indoor map as discussed herein. Accordingly, search result 3770includes selector 3777 for allowing the user to select and look insidethe venue (i.e., view the indoor map of the venue) associated with thesearch result. Thus, the user's voice commanded searching experience hasbeen enhanced by providing access to the venue viewing, searching andother features of map application 132.

Search result 3790 is the types of search results typically found whensearching using voice commanded searching. For example, search result3780 is a link to a specific venue “Mazarine Coffee.” As discussed aboveand below, search results can be presented differently based on whetherthe user is located within or outside of a venue.

Announcements and Alerts

It is also desirable for a user to be alerted that information about aparticular venue is available even if user device 130 is in a lockedmode. That is, it is desirable to present a GUI while user device 130 islocked whereby the GUI alerts the user that information about aparticular venue within a proximity of the user is available.

FIG. 38 illustrates an example graphical user interface 3800 that can bepresented to a display of user device 130 when user device 130 is in alocked mode. In the illustrated example, GUI 3800 appears on the lockscreen display 3820 of user device 130, serving as a venue proximityalert. GUI 3800 includes graphic 3812 identifying the alert as beingfrom or associated with map application 132. GUI 3800 also includes timeindicator 3814, which in the illustrated example is “now.” GUI 3800 alsoincludes textual label 3816 describing the venue alert as “Westfield SanFrancisco Centre,” by way of example. In the illustrated example, thevenue of the alert includes an indoor map as discussed herein.Accordingly, GUI 3800 includes textual label 3818 stating “Open Maps toview Places inside this mall.”

As is known in the art, swiping GUI 3800 will cause a widget to appearon the display of user device 130. Accordingly, FIG. 39 is an examplegraphical user interface 3900 comprising a widget that can be presentedto a display of user device 130 after a user swiped or otherwiseinteracted with GUI 3800. In the illustrated example, GUI 3900 appearson the lock screen display 3820 of user device 130, serving as a widgetfor the venue proximity alert of GUI 3800. GUI 3900 includes graphic3912 identifying the widget as being from or associated with mapapplication 132. GUI 3900 also includes selector 3914 to “show less” orminimize what is shown on GUI 3900.

GUI 3900 includes two selectable fields 3920 and 3930. In theillustrated implementation, selectable field 3920 includes graphic 3924representing one of venue category selectors used in the venue andsearch directories of application 132 discussed herein (e.g., categoryselectors 3112, 3114, 3116, 3118, 3120, 3122, 3124 and 3126 of searchdirectory 3110 found on example GUI 3100). Selectable field 3920 alsoincludes first textual label 3926 describing field 3920 as “WestfieldSan Francisco Centre” keeping with the current example. In theillustrated example, the venue identified in field 3920 includes anindoor map as discussed herein. Accordingly, field 3920 includesselector 3928 for allowing the user to select and view the indoor map ofthe venue associated with the search result. In the illustrated example,selectable field 3930 is field for allowing the user to get directionsto his or her home.

FIG. 40 illustrates an example graphical user interface 4000 that can bepresented to a display of user device 130 when user device 130 is in alocked mode. In the illustrated example, GUI 4000 appears on the lockscreen display 3820 of user device 130 and includes venue proximityalert 4010 and event alert 4020. Alert 4010 includes graphic 4012identifying the alert as being from or associated with map application132. Alert 4010 also includes time indicator 4014, which in theillustrated example is “now.” Alert 4010 also includes textual label4016 describing the venue alert as “Los Angeles International Airport,”by way of example. In the illustrated example, the venue of the alertincludes an indoor map as discussed herein. Accordingly, alert 4010includes textual label 4018 stating “Open Maps to view Places insidethis airport.”

Event 4020 includes graphic 4022 identifying the event as being from orassociated with an airline, which in the illustrated example is VirginAmerica. Event 4020 also includes time indicator 4024, which in theillustrated example is “now.” Event 4020 also includes textual label4026 describing the event as “Flight VX77,” by way of example. In theillustrated example, the event includes textual label 4028 stating“Boards in 2 hours at Terminal 3, Gate 34A.”

As is known in the art, swiping alert 4010 will cause a widget to appearon the display of user device 130. Accordingly, FIG. 41 is an examplegraphical user interface 4100 comprising a widget that can be presentedto a display of user device 130 after a user swiped or otherwiseinteracted with alert 4010 of GUI 4000. In the illustrated example, GUI4100 appears on the lock screen display 3820 of user device 130, servingas a widget for the venue proximity alert of GUI 4000. GUI 4100 includesa graphic 4112 identifying the widget as being from or associated withmap application 132. GUI 4100 also includes selector 4114 to “show less”or minimize what is shown on GUI 4100.

GUI 3410 includes two selectable fields 4120 and 4130. In theillustrated implementation, selectable field 4120 includes graphic 4124representing an airport. Selectable field 4120 also includes firsttextual label 4126 describing field 4120 as “LAX” keeping with thecurrent example. In the illustrated example, the venue identified infield 4120 includes an indoor map as discussed herein. Accordingly,field 4120 includes selector 4128 for allowing the user to select andview the indoor map of the venue associated with the search result. Inthe illustrated example, selectable field 4130 is field for allowing theuser to get directions to his or her home.

As is known in the art, swiping event 4020 will cause event details frome.g., a calendar application to appear on the display of user device130. Accordingly, FIG. 42 is an example graphical user interface 4200comprising event details that can be presented to a display of userdevice 130 after a user swiped or otherwise interacted with event 4020of GUI 4000. The event details come from the calendar or similarapplication or program, with the exception of venue details 4210, whichare imported from map application 132.

Venue details 4210 include graphic 4212 representing LAX's terminal 3 asdescribed in event 4020. In addition to graphic 4112, venue details 4120include first textual label 4214 identifying details 4210 as “LAXTerminal 3” keeping with the current example. Venue details 4210 alsoinclude selector 4216 for allowing the user to select and view theindoor map of the venue (i.e., LAX Terminal 3). Venue details 4210 alsoincludes indoor directory 4220 identifying POI category selectors 4222,4224 and 4226 that a user may select to search for and view inside thevenue in accordance with the principles discussed herein. Directory 4220also includes selector 4228 for initiating a manual search of the venueas described herein.

POI Density

As shown and described above, the disclosed venue features for mapapplication 132 includes a unique technique for displaying and labelingpoints of interest within a venue. In accordance with the disclosedprinciples, POI dots may be used at a low zoom level to create visualinterest in the inside view of a venue and to encourage a user to zoomin further to see more. The POI dots are used to show a density of POIsavailable within the venue. This is different than a typical mapapplication that presents an outdoor map and only places dotssporadically, providing no indication of density of POIs on the map.Moreover, displaying every POI maybe confusing or lacking visual appealby providing too much information at one time. As shown and describedabove, in map application 132, additional useful category information(e.g., category indicators) can be associated with displayed POIs whenmore zooming is performed (i.e., at lower zoom levels).

A POI can be associated with one of three states dictating how the POIand its structure are identified on an indoor map (e.g., by a dot, dotwith label, or a category indicator with a label) and a fourth statewhereby the POI is not identified on the indoor map (i.e., only thestructure is shown, but the identification of the POI is hidden fromview).

FIG. 43 is an example graphical user interface 4300 presenting an indoormap 4302 comprising points of interest in one of four display states.For example, POI 4310 is shown in a first state whereby it isrepresented by its physical structure 4312 and identified by POI dot4314. POI 4320, for example, is shown in a second state whereby it isrepresented by its physical structure 4322 and identified by POI dot4324 and textual label 4326 describing POI 4320 as “Tadashi,” by way ofexample. POI 4330, for example, is shown in a third state whereby it isrepresented by its physical structure 4332, POI indicator 4334 andtextual label 4336 describing POI 4330 as “Apple Valley Fair,” by way ofexample. In the illustrated implementation, POI indicator 4334 is agraphic associated with Apple, Inc., but as shown and described herein,POI indicator 4334 could indicate a category (e.g., a category indicatorassociated with a venue directory), sub-category (e.g., a food categoryindicator such as pizza indicator) or other type of indicator (e.g.,airport gate indicator) associated with POI 1430.

POI 4340 is different from POIs 4310, 4320 and 4330. For example, POI4340 shown in a fourth state whereby it is only represented by itsphysical structure 4342. In some implementations, POI 4340 has no labelbecause its label would collide with or be occluded by another POI'slabeling (e.g., label 4356 of POI 4350) discussed in more detail below.

In some implementations, POIs will transition from the first state, tothe second state and to the third state as the indoor map or POI iszoomed-in further. For example, a POI represented by its structure andPOI dot (i.e., state 1) will transition to a POI represented by itsstructure, POI dot and textual label (i.e., state 2) after a firstzoom-in operation. Similarly, a POI represented by its structure, POIdot and textual label (i.e., state 2) will transition to a POIrepresented by its structure, POI indicator and textual label (i.e.,state 3) after a second zoom-in operation. In some implementations, thetransitions between states will be animated to further draw in theattention of a user.

As can be appreciated, there is only so much space on a display of userdevice 130. Room on a display may cause labeling of POIs to conflict(i.e., overlap each other), which is undesirable. Conflicts may alsooccur if a venue contains numerous closely spaced POIs, preventing theuse of labels for each POI. Accordingly, prior to displaying POIs ine.g., states 2 or 3, map application 132 calculates the size required torepresent the POIs on the current view of the display area. If therepresentations of one or more POIs will overlap, map application 132will hide one or more of the representations to keep the display areafrom being cluttered.

In some implementations, map application 132 will prioritize and processPOI labeling to ensure that there are no overlapping/conflicting labels.In some implementations, map application 132 uses a prominence metricand analysis for determining which POIs should be represented moreprominently in comparison to other POIs in the venue. In someimplementations, a POI can be associated with a popularity metric, themore popular the POI to the particular venue or to the public ingeneral, the more likely it will be represented more prominently thanother POIs. In some implementations, POIs could be assigned other values(e.g., a value indicating that the POI is frequently visited by theparticular user) to be considered in prioritizing the POIs.

POIs can also be associated with a particular size based on theirstructure. For example, POI sizes can be small, medium, large,extra-large and double extra-large. The size of the POI can also beconsidered in determining which POIs should be represented moreprominently on the current map view.

Once prioritized, POIs that should be represented more prominently, willbe represented by its structure, POI indicator and textual label (i.e.,state 3) if the display conditions of the map allow. Otherwise, POIsthat should be represented more prominently, will be represented by itsstructure, POI dot and textual label (i.e., state 2) if the displayconditions of the map allow. Finally, POIs that should be representedmore prominently, will be represented by its structure and POI dot(i.e., state 1). In some implementations, double extra-large POIs(unless hidden) will always be represented by its structure, POI dot andtextual label, or POI indicator and textual label (i.e., they will onlybe represented via states 2 or 3) due to their size.

The remaining POIs on the current map view will be represented asdiscussed above unless they are occluded. In that case, the POI of anoccluded POI will only be represented by its structure with furtheridentification hidden from the view (i.e., state 4).

In some implementations, map application 132 places POI dots andindicators in one of two locations within the POI's structure based on asize of the POI's structure. FIG. 44a is a portion of an examplegraphical user interface 4400 a presenting example points of interesthaving a small footprint. For example, POI 4410 is represented bystructure 4412 having a small footprint or size. In this example, POIdot 4414 is placed at a front portion of structure 4412 slightly offsetfrom entrance 4418. The offset can be a predetermined distance that isused for every POI. The offset can correspond to a distance based on theactual size of the structure of the POI as determined by the map data(e.g., 4 meters). In some implementations, the offset can correspond toa value suitable for the current zoom level of the current view. Allthat is required is that each POI represented in this manner uses thesame offset to present a uniformed representation and estheticallypleasing view. Thus, the present disclosure should not be limited to anyparticular or actual offset value.

FIG. 44b , on the other hand, is a portion of an example graphical userinterface 4400 b presenting an example point of interest having a largefootprint. For example, POI 4420 is represented by structure 4422 havinga large footprint or size. In this example, POI dot 4424 is placed atthe approximate center of structure 4422 instead of being offset fromentrance 4428. This type of placement is both esthetically pleasing andprovides a good indication as to the size of structure 4422.

Sometimes, however, the entire structure of a large-sized POI will notbe in the current view (e.g., due to the zoom level or position of thePOI in the current view, some of the POI's structure will not be shownin the current view). In these situations, it is not desirable, or maynot be possible, to position the POI's dot in the center of itsstructure. Accordingly, another technique should be used. FIG. 44c is aportion of an example graphical user interface 4400 c presenting anexample point of interest having a large footprint in which only aportion is presented in the current view. As can be seen, POI 4420'sstructure 4422 is only partially reproduced. Accordingly, in thisexample, POI dot 4424 is placed at the front of structure 4424 offsetfrom entrance 4428 similar to the way POI dots are placed forsmaller-sized POIs.

In some implementations, the same type of POI placement is used whenPOIs are represented with labeling. For example, FIG. 45a is a portionof an example graphical user interface 4500 a presenting example pointsof interest having a small footprint. For example, POI 4510 isrepresented by structure 4512 having a small footprint or size. In thisexample, POI indicator 4514 is placed at a front portion of structure4512 slightly offset from entrance 4518. Textual label 4516 is anchoredto POI indicator 4514 and is therefore also offset from entrance 4518.FIG. 45b , on the other hand, is a portion of an example graphical userinterface 4500 b presenting an example point of interest having a largefootprint. For example, POI 4520 is represented by structure 4522 havinga large footprint or size. In this example, POI indicator 4524 is placedat the approximate center of structure 4522 instead of being offset fromentrance 4428. Textual label 4526 is anchored to POI indicator 4524 andis therefore also placed at the approximate center of structure 4522.

Sometimes, however, the entire structure of a large-sized POI will notbe in the current view (e.g., due to the zoom level or position of thePOI in the current view, some of the POI's structure will not be shownin the current view). In these situations, it is not desirable, or maynot be possible, to position the POI's dot in the center of itsstructure. Accordingly, another technique should be used. FIG. 45c is aportion of an example graphical user interface 4500 c presenting anexample point of interest having a large footprint in which only aportion is presented in the current view. As can be seen, POI 4520'sstructure 4522 is only partially reproduced. Accordingly, in thisexample, POI indicator 4524 is placed at the front of structure 4524offset from entrance 4528 similar to the way POI indicators are placedfor smaller-sized POIs. Textual label 4526 is anchored to POI indicator4524 and is therefore also offset from entrance 4528.

In some implementations, map application 132 will place and anchor thetextual labels of POIs with textual labels at different positions withrespect to the associated POI dot or indicator in order to fit withinthe associated structure and to prevent overlaps with other POIs. FIG.46 is a portion of an example graphical user interface 4600 presentingdifferent labeling for example points of interest. For example, POI 4610has structure 4612 with entrance 4618. Due to the position of entrance4618 and location of adjacent POI 4620, textual label 4616 is anchoredto the right of POI indicator 4614. POI indicator 4614 and thereforetextual label 4616 are offset from entrance 4618 by distance 4617.

POI 4620 has structure 4622 with entrance 4628. Due to the position ofentrance 4628 and location of adjacent POI 4610, textual label 4626 isanchored above POI indicator 4624. POI indicator 4624 and thereforetextual label 4626 are offset from entrance 4628 by distance 4627. Inaddition, example POI 4630 has structure 4632 with entrance 4638. Due tothe position of entrance 4638 and location of adjacent POIs, textuallabel 4636 is anchored to the left of POI indicator 4634. POI indicator4634 and therefore textual label 4636 are offset from entrance 4638 bydistance 4637. Although not shown in FIG. 46, textual labels can beanchored to their associated POI dots or indicators below the POI dot orindicator (see POI 4350 of FIG. 43).

In some implementations, after POI dots and indicators have been placed,map application 132 aligns them with respect to each other, providing anesthetically pleasing and uniform presentation of POIs. In someimplementations, if a POI dot or indicator was offset from an entrancein a horizontal direction, the POI dot or indicator is aligned withother POI dots and indicators in the vertical direction. Likewise, if aPOI dot or indicator was offset from an entrance in a verticaldirection, the POI dot or indicator is aligned with other POI dots andindicators in the horizontal direction. Map application 132 aligns thePOI dots and indicators such that they are separated by a staticdistance from each other.

FIG. 47 is an example graphical user interface illustrating thealignment of example points of interest on an indoor map. For example,once POI dots 4714 and 4724 are initially placed as discussed above, mapapplication 132 aligns them in a horizontal direction 4750. In addition,once POI dots 4724 and 4734 are initially placed as discussed above, mapapplication 132 aligns them in a vertical direction 4752. Sometime POIsare aligned along a diagonal direction. For example, once POI dots 4714and 4744 are initially placed as discussed above, map application 132aligns them in a diagonal direction 4754.

Indoor Venue Routing

Once at a venue, it is desirable for map application 132 to provide aroute and/or turn-by-turn navigation instructions to a destinationwithin the venue when desired by the user. As can be appreciated, indoornavigation of a venue with multiple floors or structures is quitecomplex and difficult and requires adjustments to the presentation toensure that the navigation route is not hidden from view while the useris traversing the route. Moreover, the presentation may be required toroute the user between floors using e.g., an elevator, escalator orstaircase and thus must be able to present the route and navigationinstructions accordingly.

In some implementations, map application 132 presents indoor routeand/or turn-by-turn navigation instructions on user device 130 bydetermining the position of device 130 and venue structure using anindoor navigation method such as the polygon routing method disclosed inU.S. patent application Ser. No. 14/869,830, filed Sep. 29, 2015, whichis hereby incorporated by reference in its entirety. While desired, thedisclosed embodiments should not be limited to a polygon routing methodfor by determining the position of device 130 and venue structure andthat any suitable indoor navigation method (e.g., GPS-based) can be usedto provide the indoor route and/or turn-by-turn navigation instructionsin accordance with the disclosed principles.

In some implementations, map application 132 uses a virtual camera that,based on detected changes in the navigation context, dynamicallymodifies the way it captures portions of the indoor map to producedifferent navigation scenes in the navigation presentation for thevenue. U.S. patent application Ser. No. 15/274,378, filed Sep. 23, 2016,which is hereby incorporated by reference in its entirety, discloses acontext driven navigation presentation for an outdoor environment.Similar principles can be used by map application 132 to provide acontext driven navigation presentation for an indoor environment such asone of the venues discussed herein.

To generate the indoor navigation scenes, map application 132 can (1)identify different sets of attributes that describe the venue'sdifferent navigation contexts at different times during the navigationpresentation, and (2) use these different sets of attributes to identifydifferent styles for operating the virtual camera. In some embodiments,map application 132 uses an identified style to specify the virtualcamera's positional attributes, which, in turn, define the portions ofthe indoor map that the virtual camera identifies for rendering toproduce several navigation scenes for a period of time (e.g., until thenavigation context changes, or until the navigation presentation endswhen the navigation context does not change again). During the indoornavigation presentation, each time the navigation context changes, theidentified set of attributes may change, which may also can the stylefor operating the virtual camera.

FIG. 48 is an example illustrating components within map application 132that can be used to implement the overview navigation mode and indoorcontext driven turn-by-turn navigation mode in accordance with thedisclosed principles. Map application 132 includes navigation module4805, style sheet 4810, style engine 4815, virtual camera engine 4820,and virtual camera 4825.

In some implementations, navigation module 4805 (1) identifies an indoorroute for device 130 to navigate to a destination within the venue, (2)uses indoor navigation location services such as the polygon routingmethod disclosed in U.S. patent application Ser. No. 14/869,830 oranother location-based service (e.g., GPS service) to identify theposition of device 130 as it travels in a region of the venue, (3)correlates this position to venue locations on or near the generatedroute, and (4) generates sets of attributes that describe the differentnavigation contexts at different times during the indoor navigationpresentation. Examples of such attributes include the type of walkwaycurrently being navigated (e.g., surrounded by multiple points ofinterests, a hallway, an open area, a food court), whether the route isat a floor changing device (e.g., elevator, escalator, staircase), thedistance to the next maneuver in the route, the type of next maneuver,the navigation status (e.g., on-route, off-route, recalculating-route),etc.

In some embodiments, each attribute set has several attributes and eachtime one of these attributes changes, the attribute set changes. In someembodiments, a change in the attribute set is viewed as a change to thenavigation context. Each time the attribute set changes, navigationmodule 4805 in some embodiments provides this new attribute set to styleengine 4815. In other embodiments, style engine 4815 iteratively queriesthe navigation module 4805 for the current attribute set that definesthe current navigation context. In either of these approaches, styleengine 4815 can repeatedly receive, from navigation module 4805, sets ofattributes that express different navigation contexts at differentinstances of the navigation presentation.

Each time style engine 4815 receives a new attribute set from navigationmodule 4805, it examines the VC styles stored in style sheet 4810 toidentify a VC style that matches the new attribute set. Style sheet 4810is a data structure that stores several styles. In some embodiments, mapapplication 132 can download new styles from a set of servers, which itthen stores in style sheet 4810.

For each style, style sheet 4810 in some embodiments stores (1) a styleidentifier, and (2) a set of style properties. In some embodiments, thestyle identifier of a style is defined in terms of a set of attributes.Thus, to identify a VC style that matches a newly received attributeset, style engine 4815 in some embodiments compares the newly receivedattribute set with the set of attributes of the stored styles in orderto identify a style with a matching attribute set. In some embodiments,the style identifiers are derived (e.g., are computed) from theassociated attribute sets of the styles. For instance, in someembodiments, the style identifiers are hash values of the attributesets. To identify a matching style, the style engine in theseembodiments compares the newly received attribute set with the styleidentifiers, by first generating a hash of a newly received attributeset, and then using the computed hash value to identify a style in thestyle sheet with a matching style identifying hash value.

After identifying a style for a newly received attribute set, styleengine 4815 determines whether the identified style is different fromthe previously identified style that is currently being used to definethe operation of the virtual camera 4825. If not, style engine 4815 doesnot provide the VC engine a new style or a new set of VC properties.However, when the identified style is different from the previouslyidentified style, style engine 4815 provides the new style's associatedset of VC properties to VC engine 4820 of the map application.

VC engine 4820 identifies positional attributes of the virtual camerabased on the properties sets of the VC styles that it receives fromstyle engine 4815. These positional attributes, in turn, define theportions of the map that the virtual camera identifies for rendering toproduce several navigation scenes for a period of time (e.g., until thenavigation context changes, or until the end of the navigationpresentation when the navigation context does not change again). Whennavigation module 4805 identifies different attribute sets to describedifferent navigation contexts, and the style engine 4815 identifiesdifferent VC styles based on these different attribute sets, styleengine 4815 provides to VC engine 4820 different VC styles that specifydifferent VC properties, which cause this engine to specify differentways that the virtual camera should define the portion of the map torender.

Based on a style's associated set of properties, VC engine 4820 of someembodiments identifies the virtual camera's angular pitch (e.g., fromtop-down position to a perspective angular position), the virtualcamera's rotation (e.g., in an X-Y plane defined by x- and y-axes of themap's coordinate system), and the virtual camera's distance from aregion on the map that it targets, e.g., from a location of a puck thatrepresents the device in the navigation presentation as the pucknavigates along a route in the presentation. In some embodiments, thevirtual camera has a system of springs that specify its angular pitch,rotation, and height, and a style's associated set of properties areused to define one or more parameters of the spring system. The springsystem in some embodiments also includes a spring for the position ofthe puck on the screen that displays the navigation presentation (i.e.,the display screen on which the virtual camera captured view isprojected). These embodiments use the spring system because this systemprovides an implicit way to specify the virtual camera's movement atdifferent instances in time and an easy way to create the navigationpresentation's animation. This is because the spring's properties (e.g.,stiffness, damping, rest length, etc.) provide a set of parameters thatthe VC engine can rely on to bring the virtual camera's properties totheir desired state smoothly In some of these embodiments, VC engine4820 operates the virtual camera either in a tracking mode or a framingmode. During the tracking mode, the virtual camera tracks the puck alongthe route and maintains the device-representing puck (referred to belowas the “puck”) at desired location(s) on the display screen thatdisplays the navigation presentation. The display screen is the displayscreen of the device in some embodiments, while it is a display screenthat is being driven by the device in other embodiments. In the framingmode, the virtual camera defines frames (e.g., bounding polygons) tocapture collection of points along the route (including the puck'slocation), and displays these frames at a desired region of interest onthe display screen as the puck travels along the route.

To generate the navigation presentation, the map application of someembodiments uses the following four coordinate systems: (1) a mapcoordinate system, (2) a puck coordinate system, (3) a virtual cameracoordinate system, and (4) a display screen coordinate system. In someof these embodiments, the first three coordinate systems are threedimensional systems, with x-, y-, and z-axes, while the fourthcoordinate system is a two dimensional system with x- and y-axes.

FIG. 49 illustrates an example of the four coordinate systems.Specifically, it illustrates a 3D map 4920 of a region that is beingcaptured by virtual camera 4825 as puck 4930 traverses along a route4935. In this example, the virtual camera is at a perspective 3Dposition in a 3D map coordinate system 4902. From this perspective 3Dposition, the virtual camera defines a 3D perspective field of view 4940that serves as all of, or a portion of, a 3D navigation scene of the 3Dnavigation presentation. The virtual camera is a conceptualrepresentation of the field of view that is defined to emanate from aparticular location and orientation in the 3D map coordinate system.

FIG. 49 also illustrates puck coordinate system 4904, VC coordinatesystem 4906, and display screen coordinate system 4908 (which is shownin small form on the screen and a larger form off the screen). Thisfigure also illustrates an arc 4965 that represents the virtual cameraangular tilt pitch towards the map. In some embodiments, the virtualcamera can have a pitch that ranges from top-down view (that defines a2D view of the map) to a low perspective pitch (that defines a lowperspective view of the map). In this example, the display screen 4905is the display screen of a mobile user device 130 on which mapapplication 132 executes.

Also, in the example illustrated in FIG. 49, the map, puck and cameracoordinate systems 4902, 4904, and 4906 are three dimensional systems,with x-, y-, and z-axes, while the display screen coordinate system 4908is a two-dimensional system with x- and y-axes. When the virtual camerais at a perspective 3D position, the 3D navigation scene that it definesin its field of view 240 is projected onto the 2D coordinate system ofthe display screen by using a perspective-projection transform in someembodiments. The projection of this field of view 4940 is illustrated asbox 4970 in FIG. 49.

During tracking mode, VC engine 4820 in some embodiments maintains thesame angular orientation (e.g., a zero angular offset) between the VC'scoordinate system 4906 and the puck's coordinate system 4904 in the x-yplane 4955 of the map's coordinate system. For instance, in someembodiments, virtual camera 4825 points in the same direction as thepuck during the tracking mode in some embodiments. Also, during thetracking mode, VC engine 4820 in some embodiments maintains thepositional relationship (e.g., a zero offset) between the origins of theVC's coordinate system 4906 and the puck's coordinate system 4904. Inother embodiments, during tracking mode, VC engine 4820 usuallymaintains the angular orientation and/or positional relationship betweenthe VC and puck coordinate systems, but allows the angular orientationand/or positional relationship between these two coordinate systems tochange for a transient period of time (e.g., the time during which thepuck makes a left or right turn) to show more context around a maneuver.

During framing mode, VC engine 4920 in some embodiments completely orpartially disassociates the angular rotation of the virtual camera'scoordinate system 4906 and the puck's coordinate system 4904. Thisallows the puck to rotate separately from the map during the framingmode, and allows virtual camera 4825 to capture more of the desiredregion of interest during this mode. During framing mode, VC engine 4820in some embodiments no longer requires the origin of the VC's coordinatesystem 4906 to be held at a particular offset (e.g., zero offset) withrespect to the puck's coordinate system 4904. This allows virtual camera4825 to assume a variety of offset positions to capture more of theuseful map areas around or ahead of the puck 4930.

In some embodiments, VC engine 4820 completely or partiallydisassociates the positional and angular relationships of virtual camera4825 and puck 4930 during the framing mode by having the virtual cameraframe a collection of points (e.g., points along the route, includingthe puck) for display at the field of focus on the display screen. Insome embodiments, the field of focus is a region on the display screenthat designers of the map application have designated as the desiredlocation for showing the puck and important points about the puck andthe route (e.g., points being framed, such as the puck and nearbymaneuvers). FIG. 49 illustrates one example of a field of focus 4975 onthe display screen 4905 of device 130.

During the framing mode, VC engine 4820 of some embodiments initiallydefines the virtual camera parameters that would define a VC field ofview that frames the collection of points. After identifying thesevirtual camera parameters, the VC engine in some embodiments adjusts thevirtual camera parameters (e.g., zoom level) in order to try to displaythe virtual camera's field of view at desired region(s) of interest onthe display screen as the puck travels along the route. For example, insome embodiments, the puck is the only point that has to be framed inthe collection of points that the VC engine tries to have the virtualcamera frame in the framing mode. In some of these embodiments, a stylecan define a bounding shape (e.g., a bounding box) that is defined aboutthe puck for a particular framing operation that is associated with thestyle.

During framing, VC engine 4820 projects the collection of points beingframed to the display screen coordinate system (e.g., based on thevirtual camera's expected, unadjusted position for the next navigationscene). A framing bounding shape (e.g., bounding box) is then defined inthe screen space about the projection of the collection of points. TheVC engine then uses the puck's bounding shape to determine how much thevirtual camera's origin can be offset to capture as many of thecollection of points being framed. This operation clips the framingbounding shape. The zoom level of the virtual camera is then adjusted toalign one of the sides of the framing bounding shape with one of thesides of the sub-region that represents the display screen's field offocus.

FIG. 50 is an example graphical user interface 5000 illustrating anoverview 5003 of indoor route 5010 on indoor map 5002 of venue 5004. Theillustrated GUI 5000 is presented during the overview navigation mode(i.e., a mode in which only a route is resented to the user along withthe user's position along the route). Overview 5000 is taken from anoverhead view of the virtual camera. In the illustrated example, route5010 begins at starting point 5014 on an upper floor 5012 of venue 5004and ends at intended destination 5018 on lower floor 5016 of venue 5004.Starting point 5014 can be a current location of a user operating userdevice 130 or it may be a point entered by a user into map application132. In addition, illustrated intended destination 5018 is an officelocated on first floor 5016. In the illustrated example, upper floor5012 is the fifth floor of venue 5004 and lower floor 5016 is the firstfloor of venue 5004. Accordingly, a user must change floors during route5010.

In some implementations, GUI 5000 also includes control area 5050 thathas first field 5052 identifying intended destination 5018 as “Brett'sDesk,” by way of example. Control area 5050 also includes second field5054 identifying the location of intended destination 5018 as “1stfloor, Section 162,” by way of example. Control area 5050 also includesfirst selector 5060 for starting an indoor navigation presentation,whereby the user can obtain turn-by-turn instructions for navigatingroute 5010, and second selector 5062 for cancelling out of overview 5003presented by GUI 5000. In the illustrated example, first selector 5060also indicates the projected time to intended destination 5018 shown as“2 min,” by way of example.

FIG. 51 is an example graphical user interface 5100 illustrating aslightly zoomed-in and rotated overview 5103 of indoor route 5010.Overview 5103 includes user current location puck 5101 identifying theuser's current location on route 5010. Overview 5103 also includes and agraphic 5124 identifying or associated with intended destination 5018.Graphic 5124 can be an image of or associated with intended destination5018 or it can be a category indicator such as the indicators discussedherein.

As will become apparent, overview 5103 provides one way for a user totraverse route 5010. That is, the user and user device 130 may simplyview route 5010 as they move along it. User location is updated usinguser current location puck 5101 and adherence to route 5010 can beobserved by the manner in which route 5010 is presented. For example, ifroute 5010 is presented as getting shorter and user current locationpuck 5101 is getting closer to intended destination 5018, the user ison-route. However, if route 5010 is presented as getting longer and usercurrent location puck 5101 is getting further away from intendeddestination 5018, the user is off-route or going in the wrong direction.Should the user desire turn-by-turn instructions, the user will need toactivate turn-by-turn navigation mode.

Overview 5103 also includes textual instruction 5120 “Down—1st fl,”indicating that in this example route 5010 goes down to first floor5016. Overview 5103 also includes floor changing identifier 5122illustrating a mechanism for moving from upper floor 5012 to lower floor5016. In some implementations, floor changing identifier 5122 can be ina different color than the color used for route 5010. In addition to, oralternatively, floor changing identifier 5122 could be animated (e.g.,flashing, giving the appearance that it is moving up and down) tofurther present to a user that floor changing identifier 5122 is forchanging floors.

Overview 5103 also illustrates several floors 5130, 5132 and 5134 thatare within venue 5004, but are being passed through by route 5010. Insome implementations, bypassed floors 5130, 5132 and 5134, as well asother structures that are not needed to traverse route 5010, arepresented in a deemphasized manner (e.g., grayed out, shown in phantom,etc.) in comparison to the structures along route 5010.

In some implementations, GUI 5100 also includes control area 5150 thathas first field 5152 identifying intended destination 5018 as “Brett'sDesk,” by way of example. Control area 5150 also includes second field5154 identifying the location of intended destination 5018 as “1stfloor—Desk,” by way of example. Control area 5150 also includes thirdfield 5156 indicating that the projected route to intended destination5018 is “2 min (465 ft),” by way of example. Control area 5150 can alsoinclude other information about intended destination 5018. For example,control area 5150 can also include fourth field 5158 indicating thatintended destination 5018 has “restricted access,” by way of example.This additional information can alert the user that a badge or otheridentifier is required at intended destination 5018.

Control area 5150 also includes first selector 5160 for starting anindoor navigation presentation, whereby the user can obtain turn-by-turninstructions for navigating route 5010, and second selector 5162 forcancelling out of overview 5103 presented by GUI 5100.

In the illustrated example, map application 132 has determined that theoverhead overview 5103 is suitable based on the user position and thestructural layout of route 5010. For example, map application 132 candetermine that the user's current location and the path of the route arenot obstructed by the floors, walls or other structures along the route.As noted above, however, it is desirable to ensure that the route doesnot get hidden as the user traverses the route. Thus, the presentationof route 5010 and structures along the route may require adjustment. Insome implementations, adjustments may include separating, repositioning,adjusting the pitch/angle of the floors.

In addition, the context of maneuvers or structure along route 5010 oruser behavior on route 5010 may require adjustments of the virtualcamera as the route 5010 is being traversed by user device 130. Forexample, views can be zoomed out or in, floors on the map be separatedfurther, pitch angle could be adjusted such that route 5010 becomes morevisible and clearer in the presentation. As discussed above, theadjustments can be made based on a set of attributes such as e.g., thetype of walkway currently being navigated (e.g., surrounded by multiplepoints of interests, a hallway, an open area, a food court), whether theroute is at a floor changing device (e.g., elevator, escalator,staircase), the distance to the next maneuver in the route, the type ofnext maneuver, the navigation status (e.g., on-route, off-route,recalculating-route), etc. As noted above, bypassed floors and otherstructures that are not needed to traverse route 5010 can be presentedin a deemphasized manner (e.g., grayed out, shown in phantom, etc.) incomparison to the structures along route 5010.

FIG. 52 is an example graphical user interface 5200 illustrating aslightly zoomed-out overview 5203 of indoor route 5010. In theillustrated example, upper floor 5012 has been separated from lowerfloor 5016 with additional portions 5230 and 5232 of lower floor 5016being deemphasized. In addition, floor changing identifier 5122 isillustrated between upper floor 5012 has been separated from lower floor5016 and could be animated (e.g., flashing, giving the appearance thatit is moving up and down) to further present to a user that floorchanging identifier 5122 is for changing floors. In someimplementations, indicator 5122 can have a different visual appearanceor be animated differently based on whether the route is suggestingstairs, an elevator or escalator to change floors.

FIG. 53 is an example graphical user interface 5300 illustrating aslightly zoomed-in and rotated overview 5303 of indoor route 5010. Inthe illustrated example, upper floor 5012 and lower floor 5016 have beenrotated clockwise as shown by arrows 5307 and 5309, respectively. In theillustrated example, portions 5230 and 5232 of lower floor 5016 arezoomed-in since overview 5303 is a zoomed-in view in comparison tooverview 5203. As in the prior example, upper floor 5012 and lower floor5016 remain deemphasized as they are not needed to traverse route 5010.

FIG. 54 is an example graphical user interface 5400 illustratingoverview 5403 of indoor route 5010 having a different pitch thanoverview 5303 of FIG. 53. In the illustrated example, the pitch of upperfloor 5012 and lower floor 5016 have been changed as shown by arrows5407 and 5409, respectively. In the illustrated example, portions 5230and 5232 of lower floor 5016 remain deemphasized as they are not neededto traverse route 5010.

FIG. 55 is an example graphical user interface 5500 illustratingoverview 5503 of a different indoor route 5510. In the illustratedexample, route 5510 begins at starting point 5514 on an upper floor 5512of venue 5504 and ends at intended destination 5518 on lower floor 5516of venue 5004. Starting point 5514 can be a current location of a useroperating user device 130 or it may be a point entered by a user intomap application 132. In the illustrated example, intended destination5518 can be a point of interest within venue 5504 such as the points ofinterest described herein.

As is clear from overview 5503, a user must change floors to traverseroute 5510. Accordingly, floor changing identifier 5522 is illustratedin overview 5503 as part of route 5510. In some implementations, one ormore graphics or other indicators can be used in conjunction with floorchanging identifier 5122 to identify a mechanism within venue 5504 thatcan be used to change floors. For example, overview 5503 includesgraphic 5532 representing an elevator bay on upper floor 5512 andgraphic 5542 representing an elevator bay on lower floor 5516 that ispart of route 5510. Graphic 5532 and graphic 5542 are connected to floorchanging identifier 5122 to present to the user how to get from upperfloor 5512 to lower floor 5516. Graphic 5532 and graphic 5542 could beanimated to (e.g., giving the appearance that they are moving up anddown) to further present to a user that graphics 5532 and 5542 representan elevator bay.

GUI 5500 illustrates other floor changing devices that are not part ofroute 5510. For example, overview 5503 includes graphic 5530representing a staircase on upper floor 5512, graphic 5534 representinganother elevator bay on upper floor 5512, and graphic 5536 representingan escalator on upper floor 5512. Graphic 5534 and graphic 5536 could beanimated to (e.g., giving the appearance that they are moving up anddown) to further present to a user that graphic 5534 represents anelevator bay and graphic 5536 represents an escalator.

In addition, overview 5503 includes corresponding graphics on lowerfloor 5516. For example, overview 5503 includes graphic 5540representing a staircase on lower floor 5516, graphic 5544 representinganother elevator bay on lower floor 5516, and graphic 5546 representingan escalator on lower floor 5516. Graphic 5544 and graphic 5546 could beanimated to (e.g., giving the appearance that they are moving up anddown) to further present to a user that graphic 5544 represents anelevator bay and graphic 5546 represents an escalator. Based on overview5503, a user can determine that there are other methods for movingbetween floors 5512 and 5516 should the user go off-route.

In some implementations, map application 132 can provide a turn-by-turnnavigation presentation for a route within a venue in a turn-by-turnnavigation mode. In some implementations, the turn-by-turn navigationpresentation will be context driven and based on one or more attributesdiscussed herein.

FIG. 56 is an example graphical user interface 5600 presenting a contextdriven indoor turn-by-turn navigation presentation for route 5660 tointended destination 5664 within a venue. In the illustrated embodiment,GUI 5600 includes first display area 5620 providing first field 5622identifying intended destination 5664 as “Express Men,” by way ofexample. First display area 5620 also includes second field 5622indicating that intended destination 5664 is 0 minutes away in thisexample.

In some implementations, GUI 5600 includes second display area 5630 forproviding turn-by-turn instructions and other information for route 5660to intended destination 5664. For example, second display area 5630includes field 5632 presenting the distance to the next maneuver inroute 5660. Field 5632 decrements the distance if the user is on-routeand is heading towards intended destination 5664. Field 5632, however,will increment the distance if the user is off-route or is heading inthe wrong direction. Thus, field 5632 is useful in orienting the userduring route 5660.

Second display area 5630 also includes field 5634 describing the nextmaneuver as e.g., a left turn and field 5636 identifying where the nextmaneuver is to be made (e.g., “at Ben Bridge Jeweler”). Graphic 5638 mayalso be provided to illustrate the next maneuver on route 5660. In someimplementations, second display area 5630 includes selector 5637allowing a user to view a maneuver that occurs after the next scheduledmaneuver, thus providing the user with a method for peeking ahead atsubsequent instructions.

In some implementations, GUI 5600 includes third display area 5650 forpresenting graphical view 5653 of route 5660. Graphical view 5653includes map 5652, which can be an indoor map as disclosed herein.Graphical view 5653 presents route 5660 between current location puck5662 and intended destination 5664. In the illustrated example, mapapplication 132 has determined that graphical view 5653 is suitablebased on the context of the current maneuver and layout within map 5652.However, as the user traverses route 5660, the context may change andthe view presented by map application 132 may need to be changed.

FIG. 57 is an example graphical user interface 5700 presenting a rotatedgraphical view 5753 of indoor route 5660. In the illustrated example,graphical view 5753 represents a counter-clockwise rotation of map 5652shown in graphical view 5653 (FIG. 56) as indicated by arrow 5755. Inthe illustrated example, the change was introduced as a response to oneor more attributes of the maneuver or venue structure along route 5660.

GUI 5700 includes first display are 5720, which in the illustratedexample is unchanged from first display area 5620 of GUI 5600. GUI 5700also includes second display area 5730 for providing turn-by-turninstructions and other information for route 5660. For example, seconddisplay area 5730 includes field 5732 presenting the distance to thenext maneuver in route 5660. Field 5732 decrements the distance if theuser is on-route and is heading towards intended destination 5664. Field5732, however, will increment the distance if the user is off-route oris heading in the wrong direction. Thus, field 5732 is useful inorienting the user during route 5660.

Second display area 5730 also includes field 5734 describing the nextmaneuver as e.g., a left turn. Graphic 5738 may also be provided toillustrate the next maneuver on route 5660. In some implementations,second display area 5730 includes selector 5737 allowing a user to viewthe prior maneuver. Second display area 5730 can include a selectorallowing the user to view a subsequent maneuver instead.

In some implementations, GUI 5700 includes third display area 5750 forpresenting graphical view 5753 of route 5660. Graphical view 5753includes map 5652, which can be an indoor map as disclosed herein. Asmentioned above, graphical view 5753 represents a counter-clockwiserotation of map 5652 shown in graphical view 5653 (FIG. 56). In theillustrated example, map application 132 has determined that graphicalview 5753 is suitable based on the context of the current maneuver andlayout within map 5652.

FIG. 58 is an example graphical user interface 5800 presenting anotherrotated graphical view 5853 of indoor route 5660. In the illustratedexample, graphical view 5783 represents a clockwise rotation of map 5652shown in graphical view 5753 (FIG. 57) as indicated by arrow 5855. Inthe illustrated example, the change was introduced as a response to oneor more attributes of the maneuver or venue structure along route 5660.

GUI 5800 includes first display are 5820, which in the illustratedexample is unchanged from first display area 5620 of GUI 5600. GUI 5800also includes second display area 5830 for providing turn-by-turninstructions and other information for route 5660. For example, seconddisplay area 5830 includes field 5832 presenting the distance to thenext maneuver in route 5660. Field 5832 decrements the distance if theuser is on-route and is heading towards intended destination 5664. Field5832, however, will increment the distance if the user is off-route oris heading in the wrong direction. Thus, field 5832 is useful inorienting the user during route 5660.

Second display area 5830 also includes field 5334 describing the nextmaneuver as e.g., the destination is on the right. Graphic 5838 may alsobe provided to illustrate that the destination is approaching.

In some implementations, GUI 5800 includes third display area 5850 forpresenting graphical view 5853 of route 5660. Graphical view 5853includes map 5652, which can be an indoor map as disclosed herein. Asmentioned above, graphical view 5853 represents a clockwise rotation ofmap 5652 shown in graphical view 5753 (FIG. 57). In the illustratedexample, map application 132 has determined that graphical view 5853 issuitable based on the context of the current maneuver and layout withinmap 5652.

FIG. 59 is an example graphical user interface 5900 presenting anotherrotated graphical view 5953 of indoor route 5660 when the user hasreached intended destination 5664 (i.e., has reached the “arrived” statefor route 5660). In the illustrated example, graphical view 5983represents a counter-clockwise rotation of map 5652 shown in graphicalview 5853 (FIG. 58) as indicated by arrow 5955. In the illustratedexample, the change was introduced as a response to one or moreattributes of the maneuver or venue structure along route 5660.

GUI 5900 includes first display are 5920, which in the illustratedexample includes field 5922 identifying intended destination 5664 as“Express Men,” by way of example. GUI 5900 also includes second displayarea 5930 for providing information at the arrived state of route 5660.For example, second display area 5930 includes field 5932 presenting thedistance to the destination, which is 0 feet since the destination hasbeen reached. Second display area 5930 also includes field 5334indicating that the user has arrived at the destination. Graphic 5938may also be provided to illustrate that the user has reached itsdestination.

In some implementations, GUI 5900 includes third display area 5950 forpresenting graphical view 5953 of route 5660. Graphical view 5953includes map 5652, which can be an indoor map as disclosed herein. Asmentioned above, graphical view 5953 represents a counter-clockwiserotation of map 5652 shown in graphical view 5853 (FIG. 58). In theillustrated example, map application 132 has determined that graphicalview 5953 is suitable based on the context of the current maneuver andlayout within map 5652.

In some implementations, map application 132 may route user device 130inside intended destination 5664 instead of routing the user to theentrance of intended destination 5664. This may be desirable when e.g.,entrances of two points of interest are adjacent each other.

In some implementations, the turn-by-turn navigation instructions willinclude additional information to help orient the user or to guide theuser through a specific structure (i.e., a food court, open area,elevator bay) associated with a venue. For example, if the user needs tochange floors and there are e.g., multiple elevator bays or otheroptions available to change floors, map application 132 will provide aninstruction such as “take an elevator to floor 3” or “proceed to floor3.” Due to uncertain nature of how the user arrives on the third floor,map application 132 must ensure the orientation of the user by providinga leading/orienting instruction such as e.g., “head towards the AppleStore” or “Sears” or some point of interest that includes prominentmarking within the venue to put the user on-route. Other types ofinstructions could be used to properly orient the user.

In-Venue Search

As noted above with respect to FIG. 14, map application 132 can providesearch selector 1476 or another field that can be used by a user toinitiate a manual search for a category or specific POI within venue.When selector 1476 or the other field is selected, a user is providedwith a way to perform the manual search. For example, FIG. 60illustrates an example graphical user interface 6000 presented by mapapplication 132 that contains a manual search field 6002 for initiatinga limited venue search in accordance with the disclosed principles. GUI6000 also includes a keyboard 6040 for entering text into field 6002.

FIG. 61 illustrates an example graphical user interface 6100 with asearch in progress. GUI 6100 illustrates text being entered into field6002 to initiate the search. In some implementations, map application132 uses an auto-complete feature to suggest POIs within or in closeproximity of the venues. In the illustrated example, the user has notfinished typing the search query, but map application 132 has displayedlisting 6150 of search results 6160 at the venue (e.g., “At Westfield”)and search results 6170 nearby the venue that are populated as the userenters text into field 6002. In some implementations, search results6160, 6170 can contain the fields, information and selectable linksdiscussed above with respect to directory searching.

FIG. 62 illustrates an example graphical user interface 6200 with asearch in progress. GUI 6200 does not include the keyboard so moresearch results can be viewed by the user. In the illustrated example,search results 6160 contains three fields 6210, 6220, 6230 identifyingPOIs within the venue that match the search. In addition, search results6170 includes one field 6240 identifying one POI located outside thevenue. As discussed above, search results can be prioritized differentlybased on whether the user is inside or outside the venue. For example,when inside a venue, the search results can be prioritized based onprior user activity, information included on the user's device (e.g.,loyalty card information in emails, text messages, contacts), calendarinformation, a particular POI, etc., or a store credit card enrolled inApple pay or another electronic wallet application. When outside avenue, the search results can be prioritized such that a venue with aninside view is listed first. Alternatively, when outside a venue, thesearch results can be prioritized such that a venue with an inside viewis listed normally among other search results with no preference overthe other search results.

FIG. 63 is an example graphical user interface 6300 presented when thereare no search results within the venue. For example, GUI 6300 includetextual indicator 6310 indicating that there are no search resultswithin the venue. To allow the user to search for the POI in the nearbyproximity of the venue, GUI 6300 includes selector 6312 which can beused to initiate a search for the POI outside of the current venue.

Example Processes

To enable the reader to obtain a clear understanding of thetechnological concepts described herein, the following processesdescribe specific steps performed in a specific order. However, one ormore of the steps of a particular process may be rearranged and/oromitted while remaining within the contemplated scope of the technologydisclosed herein. Moreover, different processes, and/or steps thereof,may be combined, recombined, rearranged, omitted, and/or executed inparallel to create different process flows that are also within thecontemplated scope of the technology disclosed herein. Additionally,while the processes below may omit or briefly summarize some of thedetails of the technologies disclosed herein for clarity, the detailsdescribed in the paragraphs above may be combined with the process stepsdescribed below to get a more complete and comprehensive understandingof these processes and the technologies disclosed herein.

FIG. 64 is a flow diagram of an example process 6400 for presenting anindoor map for a venue in accordance with the disclosed principles. Forexample, process 6400 can be performed by map application 132 running onuser device 130.

At step 6402, map application 132 can present a graphical user interfacedisplaying an outdoor map with an image of one or more venues having anindoor map selector. For example, map application 132 can present GUI200 of FIG. 2, GUI 300 of FIG. 3, GUI 800 of FIG. 8, or GUI 900 of FIG.9.

At step 6404, map application 132 can present a graphical user interfacedisplaying a cut-away 3D view of a venue based upon a zoom-in operationperformed by a user using user device 130. For example, map application132 can present GUI 400 of FIG. 4.

At step 6406, in response to a selection of an indoor map selector(e.g., selector 312 of FIG. 3 or FIG. 4, selector 912 of FIG. 10) or azoom-in operation of the prior GUI, map application 132 can present agraphical user interface displaying an indoor map illustrating theindoor structure of the venue as well as an initial set of points ofinterest. For example, map application 132 can present GUI 500 of FIG. 5or GUI 1000 of FIG. 10. The initial set of points of interest can bedetermined and displayed as discussed herein with respect to FIGS. 43-47and process 6450 of FIG. 64A.

At step 6408, in response to a zoom-in operation of a prior GUIillustrating an indoor map (e.g., map 502 of FIG. 5 or map 1002 of FIG.10), map application 132 can present a graphical user interfacedisplaying an indoor map illustrating a detailed view of the venue'sstructure and points of interest. For example, map application 132 canpre-sent GUI 600 of FIG. 6.

At step 6410, in response to a selection of a specific point of intereston an indoor map (e.g., POI 610 of FIG. 6), map application 132 canpresent a graphical user interface emphasizing the selected point ofinterest. In addition, the graphical user interface can have a placecardof the selected point of interest. For example, map application 132 canpresent GUI 700 of FIG. 7.

As noted above, some points of interest can have their own indoor map orsub-map (e.g., POI 1020 of FIG. 11) that can be selected by a user.Accordingly, at step 6012, in response to a selection of a POI's indoormap selector (e.g., selector 1128 of FIG. 11) or a zoom-in operation ofthe point of interest, map application 132 can present a graphical userinterface displaying an indoor map of the point of interest (i.e., venuesub-map) illustrating the indoor structure of the point of interest aswell as an initial set of points of interest within that point ofinterest. For example, map application 132 can present GUI 1200 of FIG.12.

FIG. 64A is a flow diagram of an example process 6450 for determiningand presenting a floor with an initial set of points of interest inaccordance with the disclosed principles. At step 6452, map application132 determines is a POI was selected from any GUI. If a POI wasselected, map application 132 presents a graphical user interfacedisplaying the floor containing the selected POI.

If it was determined at step 6452 that a POI was not selected, at step6454, map application 132 determines if the user is performing a searchoperation. If a search operation is being performed, map application canpresent a graphical user interface displaying the last floor viewed bythe user if it has a search result, the floor the user is on if it has asearch result, the default floor for the venue if it has a searchresult, or the floor with the most search results.

If it was determined at step 6454 that the user is not performing asearch, at step 6456, map application 132 determines if the userpreviously viewed a floor. If the user previously viewed a floor, mapapplication can present a graphical user interface displaying the floorpreviously viewed by the user.

If it was determined at step 6456 that the user did not previously viewa floor, map application 132, at step 6458, determines if the user is atthe venue. If the user is at the venue, map application 132 can presenta graphical user interface displaying the floor the user is on.

If it was determined at step 6458 that the user is not at the venue, mapapplication 132, at step 6460 can present a graphical user interfacedisplaying the default floor for the venue.

FIG. 65 is a flow diagram of an example process 6500 for presenting avenue directing and providing searching for points of interest within avenue in accordance with the disclosed principles. For example, process6500 can be performed by map application 132 running on user device 130.

At step 6502, map application 132 can present a graphical user interfacedisplaying an indoor map illustrating the indoor structure of the venueas well as points of interest within the venue. For example, mapapplication 132 can present GUI 1300 of FIG. 13, GUI 1400 of FIG. 14, orGUI 2300 of FIG. 23. Map application can perform the same step for asub-map associated with a specific point of interest. For example, mapapplication can present GUI 2600 of FIG. 26.

At step 6504, map application 132 will also present a venue directorywithin the graphical user interface presented at step 6502. For example,map application 132 can present GUI 1400 of FIG. 14 or GUI 2300 of FIG.23. Map application can perform the same step for a point of interestdirectory of a sub-map associated with a specific point of interest. Forexample, map application can present GUI 2600 of FIG. 26 or GUI 2700 ofFIG. 27.

At step 6506, in response to a selection of a specific category ofpoints of interest (e.g., one of category selectors 1462, 1464, 1466,1468, 1470, 1472 or 1474 of FIG. 14 or one of category selectors 2362,2364, or 2366 of FIG. 23), map application 132 can present a graphicaluser interface emphasizing points of interest on a current floor of thevenue that match the selected category. In addition, the graphical userinterface will include a list of all points of interest with the venuethat match the selected category. For example, map application 132 canpresent GUI 1500 of FIG. 15, GUI 1600 of FIG. 16, GUI 1700 of FIG. 17,GUI 1800 of FIG. 18, GUI 1900 of FIG. 19, GUI 2400 of FIG. 24, GUI 2500of FIG. 25, GUI 2800 of FIG. 28, or GUI 3000 of FIG. 30.

In some implementations, map application 132 can present a floorswitcher (e.g., floor switcher 2120 of FIG. 21) allowing the user toswitch from the current floor to a different floor, including floorsthat also contains POIs matching the selected POI category. For example,map application 132 can present GUI 2100 of FIG. 21 or GUI 2200 of FIG.22.

At step 6508, in response to a selection of a specific points ofinterest from the map or from the list presented at step 6506, mapapplication 132 can present a graphical user interface comprising richinformation concerning the selected point of interest. For example, mapapplication 132 can present GUI 2000 of FIG. 20 or GUI 2900 of FIG. 29.

FIG. 66 is a flow diagram of an example process 6600 for providing venuesearching in accordance with the disclosed principles. For example,process 6600 can be performed by map application 132 running on userdevice 130. In addition to, or alternatively, process 6600 can beperformed by an external application (e.g., web browser, searchapplication, voice commands through an intelligent personal assistant)on user device 130 that will receive input from map application 132.

At step 6602, map application 132 or external application can present agraphical user interface displaying a search field and/or point ofinterest category selectors for performing a search of venue, item orcategory of points of interest as described herein. For example, mapapplication 132 can present GUI 3100 of FIG. 31, GUI 3200 of FIG. 32,GUI 3300 of FIG. 33 or GUI 3400 of FIG. 34. A browser application, e.g.,could pre-sent GUI 3500 of FIG. 35. A search application could presentGUI 3600 of FIG. 36. An intelligent personal assistant could present GUI3700 of FIG. 37.

At step 6604, map application 132 or external application can input asearch request via the graphical user interface presented at step 6602.At step 6606, map application 132 or external application can displaysearch results on the graphical user interface presented at step 6602.At least one search result will be a venue having an indoor map inaccordance with the disclosed principles.

At step 6608, in response to a selection of an indoor map selector(e.g., selector 3267 of FIG. 32, selector 3367 of FIG. 33, selector 3467of FIG. 34, selector 3567 of FIG. 35, selectors 3667 or 3677 of FIG. 36or selectors 3767 or 3777 of FIG. 37), map application 132 can present agraphical user interface displaying an indoor map illustrating theindoor structure of the venue as well as an initial set of points ofinterest. For example, map application 132 can present GUI 500 of FIG. 5or GUI 1000 of FIG. 10. The initial set of points of interest can bedetermined and displayed as discussed herein with respect to FIGS. 43-47and process 6450 of FIG. 64A.

FIG. 67 is a flow diagram of an example process 6700 for providingindoor routing and context driven navigational routing within a venue inaccordance with the disclosed principles. For example, process 6700 canbe performed by map application 132 running on user device 130.

At step 6702, map application 132 inputs the sequence of maneuvers for aroute to a destination. In some implementations, the sequence ofinstructions are input from map service 104 over network 120.

At step 6704, map application 132 presents a graphical user interfacecomprising a view of the route based on a first view point of a virtualcamera. For example, map application 132 can present GUI 5000 of FIG.50, GUI 5100 of FIG. 51, GUI 5500 of FIG. 55 or GUI 5600 of FIG. 56.

At step 6706, and as the user is traversing the route, map application132 determines if the any portion of route will be obstructed or hiddenfrom view. If so, map application 132 presents a graphical userinterface comprising a view of the route with adjusted structure for theroute. For example, map application 132 can present GUI 5200 of FIG. 52,GUI 5300 of FIG. 53, or GUI 5400 of FIG. 54.

At step 6708, and as the user is traversing the route, map application132 determines if the context of the user's position, next maneuverand/or venue structure requires adjustment of the virtual camera toensure that the route remains visible. If an adjustment is required, mapapplication 132 presents a graphical user interface comprising a view ofthe route at the adjusted view of the virtual camera. For example, mapapplication 132 can present GUI 5600 of FIG. 56, GUI 5700 of FIG. 57,GUI 5800 of FIG. 58, or GUI 5900 of FIG. 59.

At step 6710, if the user requested turn-by-turn indoor navigationinstructions map application 132 can display turn-by-turn indoornavigation instructions in a second display area in the graphical userinterface. For example, map application 132 can pre-sent GUI 5600 ofFIG. 56, GUI 5700 of FIG. 57, GUI 5800 of FIG. 58, or GUI 5900 of FIG.59.

Graphical User Interfaces

This disclosure above describes various Graphical User Interfaces (GUIs)for implementing various features, processes or workflows. These GUIscan be presented on a variety of electronic devices including but notlimited to laptop computers, desktop computers, computer terminals,television systems, tablet computers, e-book readers and smart phones.One or more of these electronic devices can include a touch-sensitivesurface. The touch-sensitive surface can process multiple simultaneouspoints of input, including processing data related to the pressure,degree or position of each point of input. Such processing canfacilitate gestures with multiple fingers, including pinching andswiping.

When the disclosure refers to “select” or “selecting” user interfaceelements in a GUI, these terms are understood to include clicking or“hovering” with a mouse or other input device over a user interfaceelement, or touching, tapping or gesturing with one or more fingers orstylus on a user interface element. User interface elements can bevirtual buttons, menus, selectors, switches, sliders, scrubbers, knobs,thumbnails, links, icons, radio buttons, checkboxes and any othermechanism for receiving input from, or providing feedback to a user.

Privacy

The present disclosure recognizes that the use of such personalinformation data, in the present technology, can be used to the benefitof users. For example, the personal information data can be used todeliver targeted content that is of greater interest to the user.Accordingly, use of such personal information data enables calculatedcontrol of the delivered content. Further, other uses for personalinformation data that benefit the user are also contemplated by thepresent disclosure.

The present disclosure further contemplates that the entitiesresponsible for the collection, analysis, disclosure, transfer, storage,or other use of such personal information data will comply withwell-established privacy policies and/or privacy practices. Inparticular, such entities should implement and consistently use privacypolicies and practices that are generally recognized as meeting orexceeding industry or governmental requirements for maintaining personalinformation data private and secure. For example, personal informationfrom users should be collected for legitimate and reasonable uses of theentity and not shared or sold outside of those legitimate uses. Further,such collection should occur only after receiving the informed consentof the users. Additionally, such entities would take any needed stepsfor safeguarding and securing access to such personal information dataand ensuring that others with access to the personal information dataadhere to their privacy policies and procedures. Further, such entitiescan subject themselves to evaluation by third parties to certify theiradherence to widely accepted privacy policies and practices.

Despite the foregoing, the present disclosure also contemplatesembodiments in which users selectively block the use of, or access to,personal information data. That is, the present disclosure contemplatesthat hardware and/or software elements can be provided to prevent orblock access to such personal information data. For example, in the caseof advertisement delivery services, the present technology can beconfigured to allow users to select to “opt in” or “opt out” ofparticipation in the collection of personal information data duringregistration for services. In another example, users can select not toprovide location information for targeted content delivery services. Inyet another example, users can select to not provide precise locationinformation, but permit the transfer of location zone information.

Example System Architecture

FIG. 68 is a block diagram of an example computing device 6800 that canimplement the features and processes of FIGS. 1-67. The computing device6800 can include a memory interface 6802, one or more data processors,image processors and/or central processing units 6804, and a peripheralsinterface 6806. The memory interface 6802, the one or more processors6804 and/or the peripherals interface 6806 can be separate components orcan be integrated in one or more integrated circuits. The variouscomponents in the computing device 6800 can be coupled by one or morecommunication buses or signal lines.

Sensors, devices, and subsystems can be coupled to the peripheralsinterface 6806 to facilitate multiple functionalities. For example, amotion sensor 6810, a light sensor 6812, and a proximity sensor 6814 canbe coupled to the peripherals interface 6806 to facilitate orientation,lighting, and proximity functions. Other sensors 6816 can also beconnected to the peripherals interface 6806, such as a global navigationsatellite system (GNSS) (e.g., GPS receiver), a temperature sensor, abiometric sensor, magnetometer or other sensing device, to facilitaterelated functionalities.

A camera subsystem 6820 and an optical sensor 6822, e.g., a chargedcoupled device (CCD) or a complementary metal-oxide semiconductor (CMOS)optical sensor, can be utilized to facilitate camera functions, such asrecording photographs and video clips. The camera subsystem 6820 and theoptical sensor 6822 can be used to collect images of a user to be usedduring authentication of a user, e.g., by performing facial recognitionanalysis.

Communication functions can be facilitated through one or more wirelesscommunication subsystems 6824, which can include radio frequencyreceivers and transmitters and/or optical (e.g., infrared) receivers andtransmitters. The specific design and implementation of thecommunication subsystem 6824 can depend on the communication network(s)over which the computing device 6800 is intended to operate. Forexample, the computing device 6800 can include communication subsystems6824 designed to operate over a GSM network, a GPRS network, an EDGEnetwork, a Wi-Fi or WiMax network, and a Bluetooth™ network. Inparticular, the wireless communication subsystems 6824 can includehosting protocols such that the device 130 can be configured as a basestation for other wireless devices.

An audio subsystem 6826 can be coupled to a speaker 6828 and amicrophone 6830 to facilitate voice-enabled functions, such as speakerrecognition, voice replication, digital recording, and telephonyfunctions. The audio subsystem 6826 can be configured to facilitateprocessing voice commands, voiceprinting and voice authentication, forexample.

The I/O subsystem 6840 can include a touch-surface controller 6842and/or other input controller(s) 6844. The touch-surface controller 6842can be coupled to a touch surface 6846. The touch surface 6846 andtouch-surface controller 6842 can, for example, detect contact andmovement or break thereof using any of a plurality of touch sensitivitytechnologies, including but not limited to capacitive, resistive,infrared, and surface acoustic wave technologies, as well as otherproximity sensor arrays or other elements for determining one or morepoints of contact with the touch surface 6846.

The other input controller(s) 6844 can be coupled to other input/controldevices 6848, such as one or more buttons, rocker switches, thumb-wheel,infrared port, USB port, and/or a pointer device such as a stylus. Theone or more buttons (not shown) can include an up/down button for volumecontrol of the speaker 6828 and/or the microphone 6830.

In one implementation, a pressing of the button for a first duration candisengage a lock of the touch surface 6846; and a pressing of the buttonfor a second duration that is longer than the first duration can turnpower to the computing device 6800 on or off. Pressing the button for athird duration can activate a voice control, or voice command, modulethat enables the user to speak commands into the microphone 6830 tocause the device to execute the spoken command. The user can customize afunctionality of one or more of the buttons. The touch surface 6846 can,for example, also be used to implement virtual or soft buttons and/or akeyboard.

In some implementations, the computing device 6800 can present recordedaudio and/or video files, such as MP3, AAC, and MPEG files. In someimplementations, the computing device 6800 can include the functionalityof an MP3 player, such as an iPod™. The computing device 6800 can,therefore, include a 36-pin connector that is compatible with the iPod.Other input/output and control devices can also be used.

The memory interface 6802 can be coupled to memory 6850. The memory 6850can include high-speed random access memory and/or non-volatile memory,such as one or more magnetic disk storage devices, one or more opticalstorage devices, and/or flash memory (e.g., NAND, NOR). The memory 6850can store an operating system 6852, such as Darwin, RTXC, LINUX, UNIX,OS X, WINDOWS, or an embedded operating system such as VxWorks.

The operating system 6852 can include instructions for handling basicsystem services and for performing hardware dependent tasks. In someimplementations, the operating system 6852 can be a kernel (e.g., UNIXkernel). In some implementations, the operating system 6852 can includeinstructions for performing voice authentication. For example, operatingsystem 6852 can implement the venue and indoor map features as describedwith reference to FIGS. 1-67.

The memory 6850 can also store communication instructions 6854 tofacilitate communicating with one or more additional devices, one ormore computers and/or one or more servers. The memory 6850 can includegraphical user interface instructions 6856 to facilitate graphic userinterface processing; sensor processing instructions 6858 to facilitatesensor-related processing and functions; phone instructions 6860 tofacilitate phone-related processes and functions; electronic messaginginstructions 6862 to facilitate electronic-messaging related processesand functions; web browsing instructions 6864 to facilitate webbrowsing-related processes and functions; media processing instructions6866 to facilitate media processing-related processes and functions;GNSS/Navigation instructions 6868 to facilitate GNSS andnavigation-related processes and instructions; and/or camerainstructions 6870 to facilitate camera-related processes and functions.

The memory 6850 can store other software instructions 6872 to facilitateother processes and functions, such as the venue and indoor mapprocesses and functions as described with reference to FIGS. 1-67.

The memory 6850 can also store other software instructions 6874, such asweb video instructions to facilitate web video-related processes andfunctions; and/or web shopping instructions to facilitate webshopping-related processes and functions. In some implementations, themedia processing instructions 6866 are divided into audio processinginstructions and video processing instructions to facilitate audioprocessing-related processes and functions and video processing-relatedprocesses and functions, respectively.

Each of the above identified instructions and applications cancorrespond to a set of instructions for performing one or more functionsdescribed above. These instructions need not be implemented as separatesoftware programs, procedures, or modules. The memory 6850 can includeadditional instructions or fewer instructions. Furthermore, variousfunctions of the computing device 6800 can be implemented in hardwareand/or in software, including in one or more signal processing and/orapplication specific integrated circuits.

What is claimed is:
 1. A method comprising: receiving, by a mappingapplication executing on a computing device, a first selection of afirst venue; responsive to receiving the first selection, dynamicallygenerating a first set of venue-specific graphical elements representinga first plurality of categories of indoor points of interest of thefirst venue that are inside the first venue, each venue-specificgraphical element of the first set of venue-specific graphical elementsbeing selectable to select a category of the first plurality ofcategories of indoor points of interest; responsive to receiving thefirst selection, presenting, by the mapping application, a first indoormap of the first venue on a first display area of a display of thecomputing device, the first indoor map including a first plurality ofgraphical elements representing the indoor points of interest that areinside the first venue; presenting, by the mapping application, a firstvenue directory on a second display area of the display, the first venuedirectory comprising the first set of venue-specific graphical elementsfor selecting a chosen category of the first plurality of categories ofthe indoor points of interest inside the first venue; receiving, by themapping application, a second selection of a second venue; responsive toreceiving the second selection, dynamically generating a second set ofvenue-specific graphical elements representing a second plurality ofcategories of indoor points of interest of the second venue that areinside the second venue, each venue-specific graphical element of thesecond set of venue-specific graphical elements being selectable toselect a category of the second plurality of categories of indoor pointsof interest, the second set of venue-specific graphical elements beingdifferent from the first set of venue-specific graphical elements;presenting, by the mapping application, on the first display area, asecond indoor map of the second venue, the second indoor map including asecond plurality of graphical elements representing the indoor points ofinterest that are inside the second venue; and presenting, by themapping application, a second venue directory on the second display areaon the display, the second venue directory comprising the second set ofvenue-specific graphical elements for selecting from the indoor pointsof interest inside the second venue.
 2. The method of claim 1, whereinthe mapping application receives a first user input on the second venuedirectory indicating a selection of a venue-specific graphical elementand presents on the first display area, one or more indoor points ofinterest inside the second venue that correspond to the venue-specificgraphical element.
 3. The method of claim 1, further comprising:presenting, by the mapping application, a third plurality of graphicalelements each corresponding to a particular floor of one or more floorsof the second venue on the second indoor map; receiving, by the mappingapplication, a second user input by a selected graphical element of thethird plurality of graphical elements, the second user input indicatinga selection of a particular floor inside the second venue; andpresenting, by the mapping application, on the first display area,graphical elements of indoor points of interest that are on the selectedfloor of the venue.
 4. The method of claim 1, further comprising:receiving, by the mapping application, a third user input selecting,from the second indoor map, a first graphical element representing afirst indoor point of interest inside the second venue; and in responseto the third user input, presenting, by the mapping application, aninteractive placecard of information about the first indoor point ofinterest in the second display area on the display.
 5. The method ofclaim 4, further comprising presenting, by the mapping application, anindication on the first display area that the indoor point of interesthas been selected.
 6. The method of claim 4, wherein the first venue isa shopping center, wherein the second venue is an airport andinformation on the placecard indicates whether the first indoor point ofinterest is before or after a security check point in the airport. 7.The method of claim 1, wherein each graphical element of the first setof venue-specific graphical elements corresponds to a particularcategory of a set of categories of indoor points of interest that areinside the first venue, wherein each graphical element of the second setof venue-specific graphical elements corresponds to a particularcategory of a set of categories of indoor points of interest that areinside the second venue, further comprising: receiving a selection of afirst venue-specific graphical element of the first set ofvenue-specific graphical elements, the first venue-specific graphicalelement being associated with a first category of indoor points ofinterest; determining one or more indoor points of interest that areassociated with the first category; and presenting, on the first displayarea, the one or more points of interest that are associated with thefirst category.
 8. A non-transitory computer-readable medium storing amapping application program, the mapping application program forexecution by at least one computing device, the mapping applicationprogram comprising sets of instructions for: receiving, by the mappingapplication executing on a computing device, a first selection of afirst venue; responsive to receiving the first selection, dynamicallygenerating a first set of venue-specific graphical elements representinga first plurality of categories of indoor points of interest of thefirst venue that are inside the first venue, each venue-specificgraphical element of the first set of venue-specific graphical elementsbeing selectable to select a category of the first plurality ofcategories of indoor points of interest; responsive to receiving thefirst selection, presenting, by the mapping application, a first indoormap of the first venue on a first display area of a display of thecomputing device, the first indoor map including a first plurality ofgraphical elements representing the indoor points of interest that areinside the first venue; presenting, by the mapping application, a firstvenue directory on a second display area of the display, the first venuedirectory comprising the first set of venue-specific graphical elementsfor selecting a chosen category of the first plurality of categories ofthe indoor points of interest inside the first venue; receiving, by themapping application, a second selection of a second venue; responsive toreceiving the second selection, dynamically generating a second set ofvenue-specific graphical elements representing a second plurality ofcategories of indoor points of interest of the second venue that areinside the second venue, each venue-specific graphical element of thesecond set of venue-specific graphical elements being selectable toselect a category of the second plurality of categories of indoor pointsof interest, the second set of venue-specific graphical elements beingdifferent from the first set of venue-specific graphical elements;presenting, by the mapping application, on the first display area, asecond indoor map of the second venue, the second indoor map including asecond plurality of graphical elements representing the indoor points ofinterest that are inside the second venue; and presenting, by themapping application, a second venue directory on the second display areaon the display, the second venue directory comprising the second set ofvenue-specific graphical elements for selecting from the indoor pointsof interest inside the second venue.
 9. The non-transitorycomputer-readable medium of claim 8, wherein the mapping applicationreceives a first user input on the second venue directory indicating aselection of a venue-specific graphical element and presents on thefirst display area, one or more indoor points of interest inside thesecond venue that correspond to the venue-specific graphical element.10. The non-transitory computer-readable medium of claim 8, wherein themapping application program further comprises sets of instructions for:presenting a third plurality of graphical elements each corresponding toa particular floor of one or more floors of the second venue on thesecond indoor map; receiving a second user input by a particulargraphical element of the third plurality of graphical elements, thesecond user input indicating a selection of a particular floor insidethe second venue; and presenting on the first display area, graphicalelements of indoor points of interest that are on the selected floor ofthe venue.
 11. The non-transitory computer-readable medium of claim 8,wherein the mapping application program further comprises sets ofinstructions for: receiving, by the mapping application, a third userinput selecting, from the second indoor map, a first graphical elementrepresenting a first indoor point of interest inside the second venue;and in response to the third user input, presenting, by the mappingapplication, an interactive placecard of information about the firstindoor point of interest in the second display area on the display. 12.The non-transitory computer-readable medium of claim 11, wherein themapping application program further comprises sets of instructions forpresenting an indication on the first display area that the indoor pointof interest has been selected.
 13. The non-transitory computer-readablemedium of claim 11, wherein the first venue is a shopping center,wherein the second venue is an airport and information on the placecardindicates whether the first indoor point of interest is before or aftera security check point in the airport.
 14. An electronic devicecomprising: one or more processors; and a non-transitorycomputer-readable medium storing a mapping application including one ormore sets of instructions that, when executed by the one or moreprocessors, cause the processors to perform operations comprising;receiving, by the mapping application, a first selection of a firstvenue; responsive to receiving the first selection, dynamicallygenerating a first set of venue-specific graphical elements representinga first plurality of categories of indoor points of interest of thefirst venue that are inside the first venue, each venue-specificgraphical element of the first set of venue-specific graphical elementsbeing selectable to select a category of the first plurality ofcategories of indoor points of interest; responsive to receiving thefirst selection, presenting, by the mapping application, a first indoormap of the first venue on a first display area of a display of thecomputing device, the first indoor map including a first plurality ofgraphical elements representing the indoor points of interest that areinside the first venue; presenting, by the mapping application, a firstvenue directory on a second display area of the display, the first venuedirectory comprising the first set of venue-specific graphical elementsfor selecting a chosen category of the first plurality of categories ofthe indoor points of interest inside the first venue; receiving, by themapping application, a second selection of a second venue; responsive toreceiving the second selection, dynamically generating a second set ofvenue-specific graphical elements representing a second plurality ofcategories of indoor points of interest of the second venue that areinside the second venue, each venue-specific graphical element of thesecond set of venue-specific graphical elements being selectable toselect a category of the second plurality of categories of indoor pointsof interest, the second set of venue-specific graphical elements beingdifferent from the first set of venue-specific graphical elements;presenting, by the mapping application, on the first display area, asecond indoor map of the second venue, the second indoor map including asecond plurality of graphical elements representing the indoor points ofinterest that are inside the second venue; and presenting, by themapping application, a second venue directory on the second display areaon the display, the second venue directory comprising the second set ofvenue-specific graphical elements for selecting from the indoor pointsof interest inside the second venue.
 15. The electronic device of claim14, wherein the mapping application receives a first user input on thesecond venue directory indicating a selection of a venue-specificgraphical element and presents on the first display area, one or moreindoor points of interest inside the second venue that correspond to thevenue-specific graphical element.
 16. The electronic device of claim 14,wherein the mapping application program further comprises sets ofinstructions for: presenting a third plurality of graphical elementseach corresponding to a particular floor of one or more floors of thesecond venue on the second indoor map; receiving a second user input bya particular graphical element of the third plurality of graphicalelements, the second user input indicating a selection of a selectedfloor inside the second venue; and presenting on the first display area,graphical elements of indoor points of interest that are on the selectedfloor of the venue.
 17. The electronic device of claim 14, wherein themapping application program further comprises sets of instructions for:receiving, by the mapping application, a third user input selecting,from the second indoor map, a first graphical element representing afirst indoor point of interest inside the second venue; and in responseto the third user input, presenting, by the mapping application, aninteractive placecard of information about the first indoor point ofinterest in the second display area on the display.
 18. The electronicdevice of claim 17, wherein the mapping application program furthercomprises sets of instructions for presenting an indication on the firstdisplay area that the indoor point of interest from the search resultshas been selected.
 19. The electronic device of claim 17, wherein thefirst venue is a shopping center, wherein the second venue is an airportand information on the placecard indicates whether the first indoorpoint of interest is before or after a security check point in theairport.